From 500159b464eb5aa01a9aa5ee39f715e490f53212 Mon Sep 17 00:00:00 2001 From: tim Date: Mon, 28 Oct 2024 13:22:36 -0400 Subject: [PATCH] upgrade proposed vault v2 (SwapOrder.inverted) --- .../DeployArbitrum.sol/42161/run-latest.json | 269 ------------------ deployment/arb1/out/Base.sol/CommonBase.json | 1 - deployment/arb1/out/Base.sol/ScriptBase.json | 1 - deployment/arb1/out/Base.sol/TestBase.json | 1 - deployment/arb1/out/Context.sol/Context.json | 1 - deployment/arb1/out/Deploy.sol/Deploy.json | 1 - .../DeployArbitrum.sol/DeployArbitrum.json | 1 - .../out/DeployMirror.sol/DeployMirror.json | 1 - .../arb1/out/DeployMock.sol/DeployMock.json | 1 - .../arb1/out/Dexorder.sol/Dexorder.json | 1 - deployment/arb1/out/ERC20.sol/ERC20.json | 1 - .../arb1/out/ERC20/IERC20.sol/IERC20.json | 1 - .../arb1/out/ERC721/IERC721.sol/IERC721.json | 1 - .../arb1/out/FeeManager.sol/FeeManager.json | 1 - .../out/FeeManagerLib.sol/FeeManagerLib.json | 1 - .../out/FixedPoint96.sol/FixedPoint96.json | 1 - .../arb1/out/FullMath.sol/FullMath.json | 1 - deployment/arb1/out/IEEE754.sol/IEEE754.json | 1 - deployment/arb1/out/IERC165.sol/IERC165.json | 1 - deployment/arb1/out/IERC20.sol/IERC20.json | 1 - .../IERC20Metadata.sol/IERC20Metadata.json | 1 - deployment/arb1/out/IERC721.sol/IERC721.json | 1 - .../out/IERC721.sol/IERC721Enumerable.json | 1 - .../arb1/out/IERC721.sol/IERC721Metadata.json | 1 - .../out/IERC721.sol/IERC721TokenReceiver.json | 1 - .../IERC721Enumerable.json | 1 - .../IERC721Metadata.sol/IERC721Metadata.json | 1 - .../out/IERC721Permit.sol/IERC721Permit.json | 1 - .../arb1/out/IFeeManager.sol/IFeeManager.json | 1 - .../arb1/out/IMulticall3.sol/IMulticall3.json | 1 - .../INonfungiblePositionManager.json | 1 - .../IPeripheryImmutableState.json | 1 - .../IPeripheryPayments.json | 1 - .../IPoolInitializer.json | 1 - deployment/arb1/out/IRouter.sol/IRouter.json | 1 - .../arb1/out/ISwapRouter.sol/ISwapRouter.json | 1 - .../IUniswapV3Factory.json | 1 - .../IUniswapV3Pool.sol/IUniswapV3Pool.json | 1 - .../IUniswapV3PoolActions.json | 1 - .../IUniswapV3PoolDerivedState.json | 1 - .../IUniswapV3PoolEvents.json | 1 - .../IUniswapV3PoolImmutables.json | 1 - .../IUniswapV3PoolOwnerActions.json | 1 - .../IUniswapV3PoolState.json | 1 - .../IUniswapV3SwapCallback.json | 1 - deployment/arb1/out/IVault.sol/IVault.json | 1 - .../arb1/out/IVault.sol/IVaultImpl.json | 1 - .../arb1/out/IVault.sol/IVaultProxy.json | 1 - .../out/IVaultFactory.sol/IVaultFactory.json | 1 - deployment/arb1/out/IWETH9.sol/IWETH9.json | 1 - deployment/arb1/out/LineLib.sol/LineLib.json | 1 - .../LiquidityAmounts.json | 1 - .../arb1/out/MirrorEnv.sol/MirrorEnv.json | 1 - .../arb1/out/MockERC20.sol/MockERC20.json | 1 - .../MockERC721.sol/IERC721TokenReceiver.json | 1 - .../arb1/out/MockERC721.sol/MockERC721.json | 1 - deployment/arb1/out/MockEnv.sol/MockEnv.json | 1 - .../arb1/out/MockUtil.sol/MockUtil.json | 1 - .../arb1/out/OrderLib.sol/OrderLib.json | 1 - .../arb1/out/PoolAddress.sol/PoolAddress.json | 1 - deployment/arb1/out/Proxy.sol/Proxy.json | 1 - .../arb1/out/QueryHelper.sol/QueryHelper.json | 1 - .../ReentrancyGuard.sol/ReentrancyGuard.json | 1 - .../arb1/out/Router.sol/ArbitrumRouter.json | 1 - .../out/Router.sol/ArbitrumSepoliaRouter.json | 1 - deployment/arb1/out/Router.sol/Router.json | 1 - deployment/arb1/out/Script.sol/Script.json | 1 - .../arb1/out/StdChains.sol/StdChains.json | 1 - .../arb1/out/StdCheats.sol/StdCheats.json | 1 - .../arb1/out/StdCheats.sol/StdCheatsSafe.json | 1 - deployment/arb1/out/StdJson.sol/stdJson.json | 1 - deployment/arb1/out/StdMath.sol/stdMath.json | 1 - .../arb1/out/StdStorage.sol/stdStorage.json | 1 - .../out/StdStorage.sol/stdStorageSafe.json | 1 - .../arb1/out/StdStyle.sol/StdStyle.json | 1 - .../arb1/out/StdUtils.sol/StdUtils.json | 1 - .../arb1/out/TickMath.sol/TickMath.json | 1 - .../TransferHelper.sol/TransferHelper.json | 1 - .../UniswapSwapper.sol/UniswapV3Swapper.json | 1 - .../arb1/out/UniswapV3.sol/UniswapV3.json | 1 - .../out/UniswapV3.sol/UniswapV3Arbitrum.json | 1 - .../UniswapV3ArbitrumSepolia.json | 1 - deployment/arb1/out/Upgrade.sol/Upgrade.json | 1 - deployment/arb1/out/Util.sol/Util.json | 1 - deployment/arb1/out/Vault.sol/Vault.json | 1 - .../arb1/out/Vault.sol/VaultStorage.json | 1 - .../out/VaultAddress.sol/VaultAddress.json | 1 - .../out/VaultFactory.sol/VaultFactory.json | 1 - .../out/VaultImpl.sol/ArbitrumVaultImpl.json | 1 - .../arb1/out/VaultImpl.sol/VaultImpl.json | 1 - deployment/arb1/out/Vm.sol/Vm.json | 1 - deployment/arb1/out/Vm.sol/VmSafe.json | 1 - .../517cf2913c49566bcb422f2256bce7f2.json | 1 - deployment/arb1/out/console.sol/console.json | 1 - .../arb1/out/console2.sol/console2.json | 1 - .../draft-IERC6093.sol/IERC1155Errors.json | 1 - .../out/draft-IERC6093.sol/IERC20Errors.json | 1 - .../out/draft-IERC6093.sol/IERC721Errors.json | 1 - .../IERC20Metadata.sol/IERC20Metadata.json | 1 - .../introspection/IERC165.sol/IERC165.json | 1 - .../out/mocks/MockERC20.sol/MockERC20.json | 1 - .../arb1/out/safeconsole.sol/safeconsole.json | 1 - deployment/arb1/version.json | 13 - script/UpgradeArbitrum.sol | 32 +++ 104 files changed, 32 insertions(+), 383 deletions(-) delete mode 100644 deployment/arb1/broadcast/DeployArbitrum.sol/42161/run-latest.json delete mode 100644 deployment/arb1/out/Base.sol/CommonBase.json delete mode 100644 deployment/arb1/out/Base.sol/ScriptBase.json delete mode 100644 deployment/arb1/out/Base.sol/TestBase.json delete mode 100644 deployment/arb1/out/Context.sol/Context.json delete mode 100644 deployment/arb1/out/Deploy.sol/Deploy.json delete mode 100644 deployment/arb1/out/DeployArbitrum.sol/DeployArbitrum.json delete mode 100644 deployment/arb1/out/DeployMirror.sol/DeployMirror.json delete mode 100644 deployment/arb1/out/DeployMock.sol/DeployMock.json delete mode 100644 deployment/arb1/out/Dexorder.sol/Dexorder.json delete mode 100644 deployment/arb1/out/ERC20.sol/ERC20.json delete mode 100644 deployment/arb1/out/ERC20/IERC20.sol/IERC20.json delete mode 100644 deployment/arb1/out/ERC721/IERC721.sol/IERC721.json delete mode 100644 deployment/arb1/out/FeeManager.sol/FeeManager.json delete mode 100644 deployment/arb1/out/FeeManagerLib.sol/FeeManagerLib.json delete mode 100644 deployment/arb1/out/FixedPoint96.sol/FixedPoint96.json delete mode 100644 deployment/arb1/out/FullMath.sol/FullMath.json delete mode 100644 deployment/arb1/out/IEEE754.sol/IEEE754.json delete mode 100644 deployment/arb1/out/IERC165.sol/IERC165.json delete mode 100644 deployment/arb1/out/IERC20.sol/IERC20.json delete mode 100644 deployment/arb1/out/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 deployment/arb1/out/IERC721.sol/IERC721.json delete mode 100644 deployment/arb1/out/IERC721.sol/IERC721Enumerable.json delete mode 100644 deployment/arb1/out/IERC721.sol/IERC721Metadata.json delete mode 100644 deployment/arb1/out/IERC721.sol/IERC721TokenReceiver.json delete mode 100644 deployment/arb1/out/IERC721Enumerable.sol/IERC721Enumerable.json delete mode 100644 deployment/arb1/out/IERC721Metadata.sol/IERC721Metadata.json delete mode 100644 deployment/arb1/out/IERC721Permit.sol/IERC721Permit.json delete mode 100644 deployment/arb1/out/IFeeManager.sol/IFeeManager.json delete mode 100644 deployment/arb1/out/IMulticall3.sol/IMulticall3.json delete mode 100644 deployment/arb1/out/INonfungiblePositionManager.sol/INonfungiblePositionManager.json delete mode 100644 deployment/arb1/out/IPeripheryImmutableState.sol/IPeripheryImmutableState.json delete mode 100644 deployment/arb1/out/IPeripheryPayments.sol/IPeripheryPayments.json delete mode 100644 deployment/arb1/out/IPoolInitializer.sol/IPoolInitializer.json delete mode 100644 deployment/arb1/out/IRouter.sol/IRouter.json delete mode 100644 deployment/arb1/out/ISwapRouter.sol/ISwapRouter.json delete mode 100644 deployment/arb1/out/IUniswapV3Factory.sol/IUniswapV3Factory.json delete mode 100644 deployment/arb1/out/IUniswapV3Pool.sol/IUniswapV3Pool.json delete mode 100644 deployment/arb1/out/IUniswapV3PoolActions.sol/IUniswapV3PoolActions.json delete mode 100644 deployment/arb1/out/IUniswapV3PoolDerivedState.sol/IUniswapV3PoolDerivedState.json delete mode 100644 deployment/arb1/out/IUniswapV3PoolEvents.sol/IUniswapV3PoolEvents.json delete mode 100644 deployment/arb1/out/IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json delete mode 100644 deployment/arb1/out/IUniswapV3PoolOwnerActions.sol/IUniswapV3PoolOwnerActions.json delete mode 100644 deployment/arb1/out/IUniswapV3PoolState.sol/IUniswapV3PoolState.json delete mode 100644 deployment/arb1/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json delete mode 100644 deployment/arb1/out/IVault.sol/IVault.json delete mode 100644 deployment/arb1/out/IVault.sol/IVaultImpl.json delete mode 100644 deployment/arb1/out/IVault.sol/IVaultProxy.json delete mode 100644 deployment/arb1/out/IVaultFactory.sol/IVaultFactory.json delete mode 100644 deployment/arb1/out/IWETH9.sol/IWETH9.json delete mode 100644 deployment/arb1/out/LineLib.sol/LineLib.json delete mode 100644 deployment/arb1/out/LiquidityAmounts.sol/LiquidityAmounts.json delete mode 100644 deployment/arb1/out/MirrorEnv.sol/MirrorEnv.json delete mode 100644 deployment/arb1/out/MockERC20.sol/MockERC20.json delete mode 100644 deployment/arb1/out/MockERC721.sol/IERC721TokenReceiver.json delete mode 100644 deployment/arb1/out/MockERC721.sol/MockERC721.json delete mode 100644 deployment/arb1/out/MockEnv.sol/MockEnv.json delete mode 100644 deployment/arb1/out/MockUtil.sol/MockUtil.json delete mode 100644 deployment/arb1/out/OrderLib.sol/OrderLib.json delete mode 100644 deployment/arb1/out/PoolAddress.sol/PoolAddress.json delete mode 100644 deployment/arb1/out/Proxy.sol/Proxy.json delete mode 100644 deployment/arb1/out/QueryHelper.sol/QueryHelper.json delete mode 100644 deployment/arb1/out/ReentrancyGuard.sol/ReentrancyGuard.json delete mode 100644 deployment/arb1/out/Router.sol/ArbitrumRouter.json delete mode 100644 deployment/arb1/out/Router.sol/ArbitrumSepoliaRouter.json delete mode 100644 deployment/arb1/out/Router.sol/Router.json delete mode 100644 deployment/arb1/out/Script.sol/Script.json delete mode 100644 deployment/arb1/out/StdChains.sol/StdChains.json delete mode 100644 deployment/arb1/out/StdCheats.sol/StdCheats.json delete mode 100644 deployment/arb1/out/StdCheats.sol/StdCheatsSafe.json delete mode 100644 deployment/arb1/out/StdJson.sol/stdJson.json delete mode 100644 deployment/arb1/out/StdMath.sol/stdMath.json delete mode 100644 deployment/arb1/out/StdStorage.sol/stdStorage.json delete mode 100644 deployment/arb1/out/StdStorage.sol/stdStorageSafe.json delete mode 100644 deployment/arb1/out/StdStyle.sol/StdStyle.json delete mode 100644 deployment/arb1/out/StdUtils.sol/StdUtils.json delete mode 100644 deployment/arb1/out/TickMath.sol/TickMath.json delete mode 100644 deployment/arb1/out/TransferHelper.sol/TransferHelper.json delete mode 100644 deployment/arb1/out/UniswapSwapper.sol/UniswapV3Swapper.json delete mode 100644 deployment/arb1/out/UniswapV3.sol/UniswapV3.json delete mode 100644 deployment/arb1/out/UniswapV3.sol/UniswapV3Arbitrum.json delete mode 100644 deployment/arb1/out/UniswapV3.sol/UniswapV3ArbitrumSepolia.json delete mode 100644 deployment/arb1/out/Upgrade.sol/Upgrade.json delete mode 100644 deployment/arb1/out/Util.sol/Util.json delete mode 100644 deployment/arb1/out/Vault.sol/Vault.json delete mode 100644 deployment/arb1/out/Vault.sol/VaultStorage.json delete mode 100644 deployment/arb1/out/VaultAddress.sol/VaultAddress.json delete mode 100644 deployment/arb1/out/VaultFactory.sol/VaultFactory.json delete mode 100644 deployment/arb1/out/VaultImpl.sol/ArbitrumVaultImpl.json delete mode 100644 deployment/arb1/out/VaultImpl.sol/VaultImpl.json delete mode 100644 deployment/arb1/out/Vm.sol/Vm.json delete mode 100644 deployment/arb1/out/Vm.sol/VmSafe.json delete mode 100644 deployment/arb1/out/build-info/517cf2913c49566bcb422f2256bce7f2.json delete mode 100644 deployment/arb1/out/console.sol/console.json delete mode 100644 deployment/arb1/out/console2.sol/console2.json delete mode 100644 deployment/arb1/out/draft-IERC6093.sol/IERC1155Errors.json delete mode 100644 deployment/arb1/out/draft-IERC6093.sol/IERC20Errors.json delete mode 100644 deployment/arb1/out/draft-IERC6093.sol/IERC721Errors.json delete mode 100644 deployment/arb1/out/extensions/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 deployment/arb1/out/introspection/IERC165.sol/IERC165.json delete mode 100644 deployment/arb1/out/mocks/MockERC20.sol/MockERC20.json delete mode 100644 deployment/arb1/out/safeconsole.sol/safeconsole.json delete mode 100644 deployment/arb1/version.json create mode 100644 script/UpgradeArbitrum.sol diff --git a/deployment/arb1/broadcast/DeployArbitrum.sol/42161/run-latest.json b/deployment/arb1/broadcast/DeployArbitrum.sol/42161/run-latest.json deleted file mode 100644 index 9a185fe..0000000 --- a/deployment/arb1/broadcast/DeployArbitrum.sol/42161/run-latest.json +++ /dev/null @@ -1,269 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x7e4f9e6ace5e2e56690ca0a0eca8932a9f0f6cbfe2ae1d5343aa34b97e57bfe4", - "transactionType": "CREATE", - "contractName": "Dexorder", - "contractAddress": "0x7a6a4774a5b447bd5a376b6e3a3ddcb647948d99", - "function": null, - "arguments": null, - "transaction": { - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "gas": "0x11dd4f", - "value": "0x0", - "input": "0x60a0806040523460225760006080526109989081610028823960805181608c0152f35b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301efa5e51461035a578063f09e5827146100b55763f851a4400361000e57346100b05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b346100b05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b0576100ec610562565b60243567ffffffffffffffff81116100b057366023820112156100b057806004013561011781610669565b9161012560405193846105c9565b8183526024602084019260071b820101903682116100b057602401915b8183106102975750505080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061019161017b83610669565b9261018960405194856105c9565b808452610669565b0160005b81811061028657505060005b825160ff82169081101561021b57906101da826101c96101c360ff958861073b565b51610803565b6101d3828761073b565b528461073b565b501660ff81146101ec576001016101a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028283867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff00000000000000000000000000000000604051921691806102738582610681565b0390a260405191829182610681565b0390f35b806060602080938601015201610195565b600083360390608082126103575750604051906102b382610591565b843573ffffffffffffffffffffffffffffffffffffffff811681036100b0578252602085013567ffffffffffffffff811681036100b0576020830152604085013560ff811681036100b0576020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa091604085015201126100b057608091602091604051610340816105ad565b606087013581526060820152815201920191610142565b80fd5b346100b05760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057610391610562565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100b0576040516103c781610591565b60243573ffffffffffffffffffffffffffffffffffffffff811681036100b057815260443567ffffffffffffffff811681036100b057602082015260643560ff811681036100b057604082015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c3601126100b05761045d9060405161044e816105ad565b60843581526060820152610803565b60408051929061046d81856105c9565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160005b8181106105225761028284867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff0000000000000000000000000000000087846104ef856106ff565b526104f9846106ff565b5061050b604051928392169482610681565b0390a260405191829160208352602083019061060a565b806060602080938801015201610496565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600435907fffffffffffffffffffffffffffffffff00000000000000000000000000000000821682036100b057565b6080810190811067ffffffffffffffff82111761053357604052565b6020810190811067ffffffffffffffff82111761053357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053357604052565b919082519283825260005b8481106106545750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610615565b67ffffffffffffffff81116105335760051b60200190565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106106b457505050505090565b90919293946020806106f0837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08660019603018752895161060a565b970193019301919392906106a5565b80511561070c5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805182101561070c5760209160051b010190565b600060443d106107f2576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176107fd578282019283519167ffffffffffffffff83116107f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116107f557506107f2929101602001906105c9565b90565b949350505050565b92915050565b90606091805173ffffffffffffffffffffffffffffffffffffffff600091169167ffffffffffffffff602082015116606060ff60408401511692015193803b1561095e578392918360649260405197889586947f6e98833d000000000000000000000000000000000000000000000000000000008652600486015260248501525160448401525af1918261094e575b50906109385760018160033d11610928575b6308c379a0146108c2575b6108b65750565b604051903d90823e3d90fd5b6108ca61074f565b806108d6575b506108af565b93505080928051156108ea575b92386108d0565b506040516108f96040826105c9565b600381527f554e4b000000000000000000000000000000000000000000000000000000000060208201526108e3565b50600482803e815160e01c6108a4565b6040519192506109496020836105c9565b815290565b81610958916105c9565b38610892565b8380fdfea26469706673582212200e22ce0a5a5272d8a3a31d4bab405a71b5789e4283c0c7ebdb73318c731fefc764736f6c634300081a0033", - "nonce": "0xc", - "chainId": "0xa4b1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe13c5d55679f9d25bf9a35738fdb4990a5bef027e88bb24cb786770c3c2ec2c4", - "transactionType": "CREATE", - "contractName": "ArbitrumRouter", - "contractAddress": "0x64d1ab76dcc7fac1f0c43be4b5bf073c15da7a8b", - "function": null, - "arguments": null, - "transaction": { - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "gas": "0x3314f6", - "value": "0x0", - "input": "0x60e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a0033", - "nonce": "0xd", - "chainId": "0xa4b1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xc36cba86fd85cd58c5a02973a3ecc3d811ff462b632b79c2aa5d5b4d8355480b", - "transactionType": "CREATE", - "contractName": "FeeManager", - "contractAddress": "0xe5b51fcbfd6bff29b56b0babc974353675d8b335", - "function": null, - "arguments": [ - "(604800, 3600, 10, 100, (0, 0, 181, 35, 30), (0, 0, 181, 35, 30), 0x12DB90820DAFed100E40E21128E40Dcd4fF6B331, 0x822e57D95444f9Bf373827950068A877F7C7F5FC, 0x078E0C1112262433375b9aaa987BfF09a08e863C, 0x411c418C005EBDefB551e5E6B734520Ef2591f51, 0x152a3a04cE063dC77497aA06b6A09FeFD271E716)" - ], - "transaction": { - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "gas": "0x240f96", - "value": "0x0", - "input": "0x610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a00330000000000000000000000000000000000000000000000000000000000093a800000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b50000000000000000000000000000000000000000000000000000000000000023000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b50000000000000000000000000000000000000000000000000000000000000023000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000012db90820dafed100e40e21128e40dcd4ff6b331000000000000000000000000822e57d95444f9bf373827950068a877f7c7f5fc000000000000000000000000078e0c1112262433375b9aaa987bff09a08e863c000000000000000000000000411c418c005ebdefb551e5e6b734520ef2591f51000000000000000000000000152a3a04ce063dc77497aa06b6a09fefd271e716", - "nonce": "0xe", - "chainId": "0xa4b1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x72c27086343973602056da75739362bb14a39df2ea10948a6d848ef327145c09", - "transactionType": "CREATE", - "contractName": "VaultImpl", - "contractAddress": "0xe0c0ab90126d9e37b1ba0d858e5714b6dabd84ff", - "function": null, - "arguments": [ - "0x64d1ab76DcC7Fac1f0c43BE4b5Bf073c15Da7A8B", - "0xE5B51FCBfD6BFF29b56b0BAbC974353675d8B335", - "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1" - ], - "transaction": { - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "gas": "0x843dfd", - "value": "0x0", - "input": "0x60e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003300000000000000000000000064d1ab76dcc7fac1f0c43be4b5bf073c15da7a8b000000000000000000000000e5b51fcbfd6bff29b56b0babc974353675d8b33500000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1", - "nonce": "0xf", - "chainId": "0xa4b1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x36c2d281f6fa13c97625c8a5c695dd63e9bbb1710d2994d7207376ae3303a497", - "transactionType": "CREATE", - "contractName": "VaultFactory", - "contractAddress": "0x7fb08eae59e6260b6d62fc1bc199f6b8a9993246", - "function": null, - "arguments": [ - "0x12DB90820DAFed100E40E21128E40Dcd4fF6B331", - "0xe0C0ab90126D9e37b1Ba0D858e5714b6dabd84FF", - "86400" - ], - "transaction": { - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "gas": "0x2c7bc0", - "value": "0x0", - "input": "0x60c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003300000000000000000000000012db90820dafed100e40e21128e40dcd4ff6b331000000000000000000000000e0c0ab90126d9e37b1ba0d858e5714b6dabd84ff0000000000000000000000000000000000000000000000000000000000015180", - "nonce": "0x10", - "chainId": "0xa4b1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xef4cceab99a2fb89149d785e550fe4f109e391dc7e39c86e990a07b025cbf733", - "transactionType": "CREATE", - "contractName": "QueryHelper", - "contractAddress": "0xc31774fde0bb4718f6ce9a36f178717c71be09fa", - "function": null, - "arguments": [ - "0x1F98431c8aD98523631AE4a59f267346ea31F984" - ], - "transaction": { - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "gas": "0x16dce7", - "value": "0x0", - "input": "0x60a034606657601f610ce638819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b0381168103606657608052604051610c64908161008282396080518161050c0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081633c38ccbb146108a85750806354fd4d501461086e5780636a385ae91461056a578063b8df978014610530578063c45a0155146104c15763d85c32c71461006157600080fd5b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57610098610aa6565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036104bc576040516080810181811067ffffffffffffffff82111761048d57604052606481526101f46020820152610bb860408201526127106060820152600092600073ffffffffffffffffffffffffffffffffffffffff600092169360009281861015935b600460ff821610156102ef57600062ffffff611fe08360051b168801511686816040805161014781610ac9565b8c815288602082015201526102eb5773ffffffffffffffffffffffffffffffffffffffff60405160208101908b825287604082015283606082015260608152610191608082610ae5565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460558201526055815261021f607582610ae5565b519020169081156102de576040517f70a08231000000000000000000000000000000000000000000000000000000008152600481018390526020816024818e5afa9384156102d2578094610299575b5050868311610288575b505050600160ff915b011661011a565b99509094509150600160ff38610278565b909193506020823d82116102ca575b816102b560209383610ae5565b810103126102c757505191388061026e565b80fd5b3d91506102a8565b604051903d90823e3d90fd5b505050600160ff91610281565b5080fd5b5062ffffff87168015801592906104845760ff60015b16927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061034a61033486610b26565b956103426040519788610ae5565b808752610b26565b0160005b81811061045857505061040b575b5050604051602081019160208252805180935260206040830191019260005b8181106103885783830384f35b90918451805160028110156103dc578273ffffffffffffffffffffffffffffffffffffffff60406020946060946001975262ffffff868201511686850152015116604082015201950191019391909361037b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff906040519261042e84610ac9565b60018452602084015216604082015261044682610bde565b5261045081610bde565b50818061035c565b60209060405161046781610ac9565b60008152600083820152600060408201528282890101520161034e565b60ff6000610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160ff8152f35b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc576105a1610aa6565b6024359067ffffffffffffffff82116104bc57366023830112156104bc5781600401356105cd81610b26565b926105db6040519485610ae5565b8184526024602085019260051b820101903682116104bc57602401915b81831061084157505050815161ffff8110156104bc5761061790610b8f565b906106228351610b8f565b9073ffffffffffffffffffffffffffffffffffffffff1660005b845161ffff821690811015610813579081602073ffffffffffffffffffffffffffffffffffffffff6106706024958a610c1a565b5116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa806000916107db575b600494506107cb575060006106c28288610c1a565b525b602073ffffffffffffffffffffffffffffffffffffffff6106e5838a610c1a565b5116604051948580927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80600091610789575b61ffff9450610775575061073260ff9186610c1a565b525b1661ffff81146107465760010161063c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff61078391169186610c1a565b52610734565b919293906020823d82116107c3575b816107a560209383610ae5565b810103126102c75750906107bd61ffff949392610b81565b9061071c565b3d9150610798565b6107d58288610c1a565b526106c4565b919293906020823d821161080b575b816107f760209383610ae5565b810103126102c757505160049392916106ad565b3d91506107ea565b61082f8561083d86604051938493604085526040850190610b3e565b908382036020850152610b3e565b0390f35b823573ffffffffffffffffffffffffffffffffffffffff811681036104bc578152602092830192016105f8565b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160018152f35b346104bc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc5760043573ffffffffffffffffffffffffffffffffffffffff81168091036104bc577f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa9182156109f957600092610a05575b50906020600492604051938480927f1a6865020000000000000000000000000000000000000000000000000000000082525afa9182156109f95760009261099a575b506fffffffffffffffffffffffffffffffff60409283519260020b8352166020820152f35b6020813d6020116109f1575b816109b360209383610ae5565b810103126109ed5751916fffffffffffffffffffffffffffffffff831683036102c757506fffffffffffffffffffffffffffffffff610975565b8280fd5b3d91506109a6565b6040513d6000823e3d90fd5b9160e0833d60e011610a9e575b81610a1f60e09383610ae5565b810103126102c757825173ffffffffffffffffffffffffffffffffffffffff8116036102c7576020830151928360020b84036102eb5780610a64604060c09301610b72565b50610a7160608201610b72565b50610a7e60808201610b72565b50610a8b60a08201610b81565b500151801515036102c757506020610933565b3d9150610a12565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104bc57565b6060810190811067ffffffffffffffff82111761048d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761048d57604052565b67ffffffffffffffff811161048d5760051b60200190565b906020808351928381520192019060005b818110610b5c5750505090565b8251845260209384019390920191600101610b4f565b519061ffff821682036104bc57565b519060ff821682036104bc57565b90610b9982610b26565b610ba66040519182610ae5565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610bd48294610b26565b0190602036910137565b805115610beb5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015610beb5760209160051b01019056fea26469706673582212205696eb2dd0fb23433a05a3bbbc207a0d1a56c25d660d156565443d6ee58f2d2c64736f6c634300081a00330000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984", - "nonce": "0x11", - "chainId": "0xa4b1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x1f59be", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x7e4f9e6ace5e2e56690ca0a0eca8932a9f0f6cbfe2ae1d5343aa34b97e57bfe4", - "transactionIndex": "0x4", - "blockHash": "0x0d6c7265e99e170a9af2a58d718db7e25f542b4f3816877652efe12715f60364", - "blockNumber": "0xfe43a32", - "gasUsed": "0xd0ce3", - "effectiveGasPrice": "0x989680", - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "to": null, - "contractAddress": "0x7a6a4774a5b447bd5a376b6e3a3ddcb647948d99", - "gasUsedForL1": "0x42cf5", - "l1BlockNumber": "0x140cd44" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x25928f", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe13c5d55679f9d25bf9a35738fdb4990a5bef027e88bb24cb786770c3c2ec2c4", - "transactionIndex": "0x1", - "blockHash": "0xdc23db1d4bad0ff2f328f10e94ccd3fdffcee765279c23a9ff3b5775c602702f", - "blockNumber": "0xfe43a5b", - "gasUsed": "0x25928f", - "effectiveGasPrice": "0x989680", - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "to": null, - "contractAddress": "0x64d1ab76dcc7fac1f0c43be4b5bf073c15da7a8b", - "gasUsedForL1": "0xb9bc8", - "l1BlockNumber": "0x140cd45" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x1bfd04", - "logs": [ - { - "address": "0xe5b51fcbfd6bff29b56b0babc974353675d8b335", - "topics": [ - "0x6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c", - "0xdd414609b6cf7827e8de0c265dda2f11fa0e2e92d3a410887871537d6f06504b" - ], - "data": "0x", - "blockHash": "0xe17b84735695e433d8a40f0896c9babccaa8710e729ff0056de911bbcba43fc3", - "blockNumber": "0xfe43a84", - "transactionHash": "0xc36cba86fd85cd58c5a02973a3ecc3d811ff462b632b79c2aa5d5b4d8355480b", - "transactionIndex": "0x2", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0xe5b51fcbfd6bff29b56b0babc974353675d8b335", - "topics": [ - "0xc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af", - "0xdd414609b6cf7827e8de0c265dda2f11fa0e2e92d3a410887871537d6f06504b" - ], - "data": "0x", - "blockHash": "0xe17b84735695e433d8a40f0896c9babccaa8710e729ff0056de911bbcba43fc3", - "blockNumber": "0xfe43a84", - "transactionHash": "0xc36cba86fd85cd58c5a02973a3ecc3d811ff462b632b79c2aa5d5b4d8355480b", - "transactionIndex": "0x2", - "logIndex": "0x2", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000010000000008000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000800000000000000000400000080000000000000002000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000010000000000000000080000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xc36cba86fd85cd58c5a02973a3ecc3d811ff462b632b79c2aa5d5b4d8355480b", - "transactionIndex": "0x2", - "blockHash": "0xe17b84735695e433d8a40f0896c9babccaa8710e729ff0056de911bbcba43fc3", - "blockNumber": "0xfe43a84", - "gasUsed": "0x1a836f", - "effectiveGasPrice": "0x989680", - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "to": null, - "contractAddress": "0xe5b51fcbfd6bff29b56b0babc974353675d8b335", - "gasUsedForL1": "0x7e02f", - "l1BlockNumber": "0x140cd47" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x61d48a", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x72c27086343973602056da75739362bb14a39df2ea10948a6d848ef327145c09", - "transactionIndex": "0x1", - "blockHash": "0xa3fec7014a8ed8facff3dd32ad7f9032c9c09bdc1049b3a7fdf098646e481a50", - "blockNumber": "0xfe43ac2", - "gasUsed": "0x61d48a", - "effectiveGasPrice": "0x989680", - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "to": null, - "contractAddress": "0xe0c0ab90126d9e37b1ba0d858e5714b6dabd84ff", - "gasUsedForL1": "0x1ad1af", - "l1BlockNumber": "0x140cd48" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x267d3f", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x36c2d281f6fa13c97625c8a5c695dd63e9bbb1710d2994d7207376ae3303a497", - "transactionIndex": "0x3", - "blockHash": "0x63c0aea6cee73a842718ca4b771bfaa14ac5d8c41d5b80e6408c865a15eef0e4", - "blockNumber": "0xfe43ae5", - "gasUsed": "0x20e510", - "effectiveGasPrice": "0x989680", - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "to": null, - "contractAddress": "0x7fb08eae59e6260b6d62fc1bc199f6b8a9993246", - "gasUsedForL1": "0x8dc05", - "l1BlockNumber": "0x140cd48" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x10bba7", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xef4cceab99a2fb89149d785e550fe4f109e391dc7e39c86e990a07b025cbf733", - "transactionIndex": "0x1", - "blockHash": "0xb9e78dd5d2dfa3ed0681f0d73230f89f1c6b4d7217492974a42ebb64670ed13e", - "blockNumber": "0xfe43b07", - "gasUsed": "0x10bba7", - "effectiveGasPrice": "0x989680", - "from": "0x12db90820dafed100e40e21128e40dcd4ff6b331", - "to": null, - "contractAddress": "0xc31774fde0bb4718f6ce9a36f178717c71be09fa", - "gasUsedForL1": "0x57bb8", - "l1BlockNumber": "0x140cd49" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1729635769, - "chain": 42161, - "commit": "d0f4aa7" -} \ No newline at end of file diff --git a/deployment/arb1/out/Base.sol/CommonBase.json b/deployment/arb1/out/Base.sol/CommonBase.json deleted file mode 100644 index f5721b4..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/Base.sol":"CommonBase"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/deployment/arb1/out/Base.sol/ScriptBase.json b/deployment/arb1/out/Base.sol/ScriptBase.json deleted file mode 100644 index a27360f..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/Base.sol":"ScriptBase"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/deployment/arb1/out/Base.sol/TestBase.json b/deployment/arb1/out/Base.sol/TestBase.json deleted file mode 100644 index db1a894..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/Base.sol":"TestBase"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":0} \ No newline at end of file diff --git a/deployment/arb1/out/Context.sol/Context.json b/deployment/arb1/out/Context.sol/Context.json deleted file mode 100644 index b43cf63..0000000 --- a/deployment/arb1/out/Context.sol/Context.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/utils/Context.sol":"Context"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":27} \ No newline at end of file diff --git a/deployment/arb1/out/Deploy.sol/Deploy.json b/deployment/arb1/out/Deploy.sol/Deploy.json deleted file mode 100644 index eaec72d..0000000 --- a/deployment/arb1/out/Deploy.sol/Deploy.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":"0x608080604052346026576201000162ff00ff19600c541617600c5561c676908161002c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b90503461073f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261073f57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561073f577f7fb5297f00000000000000000000000000000000000000000000000000000000815281808260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156106f55761072f575b50506040516109c08082019082821067ffffffffffffffff8311176107025790829161af9b8339039082f080156106f557604051611e7a8082019082821067ffffffffffffffff8311176106c8579082916120558339039083f080156106295760405161018081610743565b60e381526028602082015260b5604082015260246060820152601e60808201526040516101ac81610743565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610160830183811067ffffffffffffffff82111761066c579067ffffffffffffffff929160405261465084526020840191611c2083526040850191600a83526060860191606483526080870191825260a0870190815260c087019033825260e08801923384526101008901947390f79bf6eb2c4f870365e785982e1f101e93b90686526101208a019673976ea74026e726554db657fa54763abd0c3a0aa988526101408b01987315d34aaf54267db7d7c367839aaf71a00a2c6a658a526040519b6117538d8181019d8e918210911117610699579661037f8d9b978f9d9a946102609f8f73ffffffffffffffffffffffffffffffffffffffff9e999a8f9d8e9c60ff8e9c63ffffffff610340988f9d8290859760809a6109029039511689525116602088015251166040860152511660608401525191019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b516101208d019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b51166101c08a015251166101e088015251166102008601525116610220840152511661024082015203019084f09081156106345760405191615491918284019284841067ffffffffffffffff85111761066c57849273ffffffffffffffffffffffffffffffffffffffff606095938193615b0a873916835216602082015285604082015203019083f080156106295760405190611c3b908183019183831067ffffffffffffffff84111761063f579173ffffffffffffffffffffffffffffffffffffffff8492606094613ecf85393383521660208201526078604082015203019083f090811561062957604051610ce68082019082821067ffffffffffffffff83111761063f57602091839161b95b8339731f98431c8ad98523631ae4a59f267346ea31f984815203019084f091821561063457737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561062557836040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156106295761060c575b5073ffffffffffffffffffffffffffffffffffffffff61060994610589828096956105c9955061058360405161055460408261078e565b600c81527f5661756c74466163746f7279000000000000000000000000000000000000000060208201526107cf565b166108a9565b61058360405161059a60408261078e565b600b81527f517565727948656c70657200000000000000000000000000000000000000000060208201526107cf565b6105836040516105da60408261078e565b600881527f4465786f7264657200000000000000000000000000000000000000000000000060208201526107cf565b80f35b816106199194939461078e565b6106255790833861051d565b8380fd5b6040513d84823e3d90fd5b6040513d85823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b505060248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6107389161078e565b3881610114565b5080fd5b60a0810190811067ffffffffffffffff82111761075f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761075f57604052565b604051907f41304fac0000000000000000000000000000000000000000000000000000000060208301526020602483015280519081604484015260005b8281106108935750508161087c6064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86600085819a99829a0101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261078e565b6020815191016a636f6e736f6c652e6c6f675afa50565b806020809284010151606482870101520161080c565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc20000000000000000000000000000000000000000000000000000000060208401521660248201526024815261087c60448261078e56fe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360a0806040523460225760006080526109989081610028823960805181608c0152f35b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301efa5e51461035a578063f09e5827146100b55763f851a4400361000e57346100b05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b346100b05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b0576100ec610562565b60243567ffffffffffffffff81116100b057366023820112156100b057806004013561011781610669565b9161012560405193846105c9565b8183526024602084019260071b820101903682116100b057602401915b8183106102975750505080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061019161017b83610669565b9261018960405194856105c9565b808452610669565b0160005b81811061028657505060005b825160ff82169081101561021b57906101da826101c96101c360ff958861073b565b51610803565b6101d3828761073b565b528461073b565b501660ff81146101ec576001016101a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028283867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff00000000000000000000000000000000604051921691806102738582610681565b0390a260405191829182610681565b0390f35b806060602080938601015201610195565b600083360390608082126103575750604051906102b382610591565b843573ffffffffffffffffffffffffffffffffffffffff811681036100b0578252602085013567ffffffffffffffff811681036100b0576020830152604085013560ff811681036100b0576020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa091604085015201126100b057608091602091604051610340816105ad565b606087013581526060820152815201920191610142565b80fd5b346100b05760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057610391610562565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100b0576040516103c781610591565b60243573ffffffffffffffffffffffffffffffffffffffff811681036100b057815260443567ffffffffffffffff811681036100b057602082015260643560ff811681036100b057604082015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c3601126100b05761045d9060405161044e816105ad565b60843581526060820152610803565b60408051929061046d81856105c9565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160005b8181106105225761028284867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff0000000000000000000000000000000087846104ef856106ff565b526104f9846106ff565b5061050b604051928392169482610681565b0390a260405191829160208352602083019061060a565b806060602080938801015201610496565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600435907fffffffffffffffffffffffffffffffff00000000000000000000000000000000821682036100b057565b6080810190811067ffffffffffffffff82111761053357604052565b6020810190811067ffffffffffffffff82111761053357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053357604052565b919082519283825260005b8481106106545750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610615565b67ffffffffffffffff81116105335760051b60200190565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106106b457505050505090565b90919293946020806106f0837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08660019603018752895161060a565b970193019301919392906106a5565b80511561070c5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805182101561070c5760209160051b010190565b600060443d106107f2576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176107fd578282019283519167ffffffffffffffff83116107f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116107f557506107f2929101602001906105c9565b90565b949350505050565b92915050565b90606091805173ffffffffffffffffffffffffffffffffffffffff600091169167ffffffffffffffff602082015116606060ff60408401511692015193803b1561095e578392918360649260405197889586947f6e98833d000000000000000000000000000000000000000000000000000000008652600486015260248501525160448401525af1918261094e575b50906109385760018160033d11610928575b6308c379a0146108c2575b6108b65750565b604051903d90823e3d90fd5b6108ca61074f565b806108d6575b506108af565b93505080928051156108ea575b92386108d0565b506040516108f96040826105c9565b600381527f554e4b000000000000000000000000000000000000000000000000000000000060208201526108e3565b50600482803e815160e01c6108a4565b6040519192506109496020836105c9565b815290565b81610958916105c9565b38610892565b8380fdfea26469706673582212200e22ce0a5a5272d8a3a31d4bab405a71b5789e4283c0c7ebdb73318c731fefc764736f6c634300081a003360a034606657601f610ce638819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b0381168103606657608052604051610c64908161008282396080518161050c0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081633c38ccbb146108a85750806354fd4d501461086e5780636a385ae91461056a578063b8df978014610530578063c45a0155146104c15763d85c32c71461006157600080fd5b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57610098610aa6565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036104bc576040516080810181811067ffffffffffffffff82111761048d57604052606481526101f46020820152610bb860408201526127106060820152600092600073ffffffffffffffffffffffffffffffffffffffff600092169360009281861015935b600460ff821610156102ef57600062ffffff611fe08360051b168801511686816040805161014781610ac9565b8c815288602082015201526102eb5773ffffffffffffffffffffffffffffffffffffffff60405160208101908b825287604082015283606082015260608152610191608082610ae5565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460558201526055815261021f607582610ae5565b519020169081156102de576040517f70a08231000000000000000000000000000000000000000000000000000000008152600481018390526020816024818e5afa9384156102d2578094610299575b5050868311610288575b505050600160ff915b011661011a565b99509094509150600160ff38610278565b909193506020823d82116102ca575b816102b560209383610ae5565b810103126102c757505191388061026e565b80fd5b3d91506102a8565b604051903d90823e3d90fd5b505050600160ff91610281565b5080fd5b5062ffffff87168015801592906104845760ff60015b16927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061034a61033486610b26565b956103426040519788610ae5565b808752610b26565b0160005b81811061045857505061040b575b5050604051602081019160208252805180935260206040830191019260005b8181106103885783830384f35b90918451805160028110156103dc578273ffffffffffffffffffffffffffffffffffffffff60406020946060946001975262ffffff868201511686850152015116604082015201950191019391909361037b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff906040519261042e84610ac9565b60018452602084015216604082015261044682610bde565b5261045081610bde565b50818061035c565b60209060405161046781610ac9565b60008152600083820152600060408201528282890101520161034e565b60ff6000610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160ff8152f35b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc576105a1610aa6565b6024359067ffffffffffffffff82116104bc57366023830112156104bc5781600401356105cd81610b26565b926105db6040519485610ae5565b8184526024602085019260051b820101903682116104bc57602401915b81831061084157505050815161ffff8110156104bc5761061790610b8f565b906106228351610b8f565b9073ffffffffffffffffffffffffffffffffffffffff1660005b845161ffff821690811015610813579081602073ffffffffffffffffffffffffffffffffffffffff6106706024958a610c1a565b5116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa806000916107db575b600494506107cb575060006106c28288610c1a565b525b602073ffffffffffffffffffffffffffffffffffffffff6106e5838a610c1a565b5116604051948580927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80600091610789575b61ffff9450610775575061073260ff9186610c1a565b525b1661ffff81146107465760010161063c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff61078391169186610c1a565b52610734565b919293906020823d82116107c3575b816107a560209383610ae5565b810103126102c75750906107bd61ffff949392610b81565b9061071c565b3d9150610798565b6107d58288610c1a565b526106c4565b919293906020823d821161080b575b816107f760209383610ae5565b810103126102c757505160049392916106ad565b3d91506107ea565b61082f8561083d86604051938493604085526040850190610b3e565b908382036020850152610b3e565b0390f35b823573ffffffffffffffffffffffffffffffffffffffff811681036104bc578152602092830192016105f8565b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160018152f35b346104bc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc5760043573ffffffffffffffffffffffffffffffffffffffff81168091036104bc577f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa9182156109f957600092610a05575b50906020600492604051938480927f1a6865020000000000000000000000000000000000000000000000000000000082525afa9182156109f95760009261099a575b506fffffffffffffffffffffffffffffffff60409283519260020b8352166020820152f35b6020813d6020116109f1575b816109b360209383610ae5565b810103126109ed5751916fffffffffffffffffffffffffffffffff831683036102c757506fffffffffffffffffffffffffffffffff610975565b8280fd5b3d91506109a6565b6040513d6000823e3d90fd5b9160e0833d60e011610a9e575b81610a1f60e09383610ae5565b810103126102c757825173ffffffffffffffffffffffffffffffffffffffff8116036102c7576020830151928360020b84036102eb5780610a64604060c09301610b72565b50610a7160608201610b72565b50610a7e60808201610b72565b50610a8b60a08201610b81565b500151801515036102c757506020610933565b3d9150610a12565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104bc57565b6060810190811067ffffffffffffffff82111761048d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761048d57604052565b67ffffffffffffffff811161048d5760051b60200190565b906020808351928381520192019060005b818110610b5c5750505090565b8251845260209384019390920191600101610b4f565b519061ffff821682036104bc57565b519060ff821682036104bc57565b90610b9982610b26565b610ba66040519182610ae5565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610bd48294610b26565b0190602036910137565b805115610beb5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015610beb5760209160051b01019056fea26469706673582212205696eb2dd0fb23433a05a3bbbc207a0d1a56c25d660d156565443d6ee58f2d2c64736f6c634300081a0033a2646970667358221220c657d65f20b7570f17a40dbfe89bb03fa493967accd8360356719772b5f75c6064736f6c634300081a0033","sourceMap":"407:1194:53:-:0;;;;;;;;;;3166:4:2;407:1194:53;;;3166:4:2;407:1194:53;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b90503461073f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261073f57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561073f577f7fb5297f00000000000000000000000000000000000000000000000000000000815281808260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156106f55761072f575b50506040516109c08082019082821067ffffffffffffffff8311176107025790829161af9b8339039082f080156106f557604051611e7a8082019082821067ffffffffffffffff8311176106c8579082916120558339039083f080156106295760405161018081610743565b60e381526028602082015260b5604082015260246060820152601e60808201526040516101ac81610743565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610160830183811067ffffffffffffffff82111761066c579067ffffffffffffffff929160405261465084526020840191611c2083526040850191600a83526060860191606483526080870191825260a0870190815260c087019033825260e08801923384526101008901947390f79bf6eb2c4f870365e785982e1f101e93b90686526101208a019673976ea74026e726554db657fa54763abd0c3a0aa988526101408b01987315d34aaf54267db7d7c367839aaf71a00a2c6a658a526040519b6117538d8181019d8e918210911117610699579661037f8d9b978f9d9a946102609f8f73ffffffffffffffffffffffffffffffffffffffff9e999a8f9d8e9c60ff8e9c63ffffffff610340988f9d8290859760809a6109029039511689525116602088015251166040860152511660608401525191019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b516101208d019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b51166101c08a015251166101e088015251166102008601525116610220840152511661024082015203019084f09081156106345760405191615491918284019284841067ffffffffffffffff85111761066c57849273ffffffffffffffffffffffffffffffffffffffff606095938193615b0a873916835216602082015285604082015203019083f080156106295760405190611c3b908183019183831067ffffffffffffffff84111761063f579173ffffffffffffffffffffffffffffffffffffffff8492606094613ecf85393383521660208201526078604082015203019083f090811561062957604051610ce68082019082821067ffffffffffffffff83111761063f57602091839161b95b8339731f98431c8ad98523631ae4a59f267346ea31f984815203019084f091821561063457737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561062557836040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156106295761060c575b5073ffffffffffffffffffffffffffffffffffffffff61060994610589828096956105c9955061058360405161055460408261078e565b600c81527f5661756c74466163746f7279000000000000000000000000000000000000000060208201526107cf565b166108a9565b61058360405161059a60408261078e565b600b81527f517565727948656c70657200000000000000000000000000000000000000000060208201526107cf565b6105836040516105da60408261078e565b600881527f4465786f7264657200000000000000000000000000000000000000000000000060208201526107cf565b80f35b816106199194939461078e565b6106255790833861051d565b8380fd5b6040513d84823e3d90fd5b6040513d85823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b505060248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6107389161078e565b3881610114565b5080fd5b60a0810190811067ffffffffffffffff82111761075f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761075f57604052565b604051907f41304fac0000000000000000000000000000000000000000000000000000000060208301526020602483015280519081604484015260005b8281106108935750508161087c6064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86600085819a99829a0101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261078e565b6020815191016a636f6e736f6c652e6c6f675afa50565b806020809284010151606482870101520161080c565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc20000000000000000000000000000000000000000000000000000000060208401521660248201526024815261087c60448261078e56fe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360a0806040523460225760006080526109989081610028823960805181608c0152f35b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301efa5e51461035a578063f09e5827146100b55763f851a4400361000e57346100b05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b346100b05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b0576100ec610562565b60243567ffffffffffffffff81116100b057366023820112156100b057806004013561011781610669565b9161012560405193846105c9565b8183526024602084019260071b820101903682116100b057602401915b8183106102975750505080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061019161017b83610669565b9261018960405194856105c9565b808452610669565b0160005b81811061028657505060005b825160ff82169081101561021b57906101da826101c96101c360ff958861073b565b51610803565b6101d3828761073b565b528461073b565b501660ff81146101ec576001016101a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028283867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff00000000000000000000000000000000604051921691806102738582610681565b0390a260405191829182610681565b0390f35b806060602080938601015201610195565b600083360390608082126103575750604051906102b382610591565b843573ffffffffffffffffffffffffffffffffffffffff811681036100b0578252602085013567ffffffffffffffff811681036100b0576020830152604085013560ff811681036100b0576020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa091604085015201126100b057608091602091604051610340816105ad565b606087013581526060820152815201920191610142565b80fd5b346100b05760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057610391610562565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100b0576040516103c781610591565b60243573ffffffffffffffffffffffffffffffffffffffff811681036100b057815260443567ffffffffffffffff811681036100b057602082015260643560ff811681036100b057604082015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c3601126100b05761045d9060405161044e816105ad565b60843581526060820152610803565b60408051929061046d81856105c9565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160005b8181106105225761028284867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff0000000000000000000000000000000087846104ef856106ff565b526104f9846106ff565b5061050b604051928392169482610681565b0390a260405191829160208352602083019061060a565b806060602080938801015201610496565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600435907fffffffffffffffffffffffffffffffff00000000000000000000000000000000821682036100b057565b6080810190811067ffffffffffffffff82111761053357604052565b6020810190811067ffffffffffffffff82111761053357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053357604052565b919082519283825260005b8481106106545750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610615565b67ffffffffffffffff81116105335760051b60200190565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106106b457505050505090565b90919293946020806106f0837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08660019603018752895161060a565b970193019301919392906106a5565b80511561070c5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805182101561070c5760209160051b010190565b600060443d106107f2576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176107fd578282019283519167ffffffffffffffff83116107f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116107f557506107f2929101602001906105c9565b90565b949350505050565b92915050565b90606091805173ffffffffffffffffffffffffffffffffffffffff600091169167ffffffffffffffff602082015116606060ff60408401511692015193803b1561095e578392918360649260405197889586947f6e98833d000000000000000000000000000000000000000000000000000000008652600486015260248501525160448401525af1918261094e575b50906109385760018160033d11610928575b6308c379a0146108c2575b6108b65750565b604051903d90823e3d90fd5b6108ca61074f565b806108d6575b506108af565b93505080928051156108ea575b92386108d0565b506040516108f96040826105c9565b600381527f554e4b000000000000000000000000000000000000000000000000000000000060208201526108e3565b50600482803e815160e01c6108a4565b6040519192506109496020836105c9565b815290565b81610958916105c9565b38610892565b8380fdfea26469706673582212200e22ce0a5a5272d8a3a31d4bab405a71b5789e4283c0c7ebdb73318c731fefc764736f6c634300081a003360a034606657601f610ce638819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b0381168103606657608052604051610c64908161008282396080518161050c0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081633c38ccbb146108a85750806354fd4d501461086e5780636a385ae91461056a578063b8df978014610530578063c45a0155146104c15763d85c32c71461006157600080fd5b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57610098610aa6565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036104bc576040516080810181811067ffffffffffffffff82111761048d57604052606481526101f46020820152610bb860408201526127106060820152600092600073ffffffffffffffffffffffffffffffffffffffff600092169360009281861015935b600460ff821610156102ef57600062ffffff611fe08360051b168801511686816040805161014781610ac9565b8c815288602082015201526102eb5773ffffffffffffffffffffffffffffffffffffffff60405160208101908b825287604082015283606082015260608152610191608082610ae5565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460558201526055815261021f607582610ae5565b519020169081156102de576040517f70a08231000000000000000000000000000000000000000000000000000000008152600481018390526020816024818e5afa9384156102d2578094610299575b5050868311610288575b505050600160ff915b011661011a565b99509094509150600160ff38610278565b909193506020823d82116102ca575b816102b560209383610ae5565b810103126102c757505191388061026e565b80fd5b3d91506102a8565b604051903d90823e3d90fd5b505050600160ff91610281565b5080fd5b5062ffffff87168015801592906104845760ff60015b16927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061034a61033486610b26565b956103426040519788610ae5565b808752610b26565b0160005b81811061045857505061040b575b5050604051602081019160208252805180935260206040830191019260005b8181106103885783830384f35b90918451805160028110156103dc578273ffffffffffffffffffffffffffffffffffffffff60406020946060946001975262ffffff868201511686850152015116604082015201950191019391909361037b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff906040519261042e84610ac9565b60018452602084015216604082015261044682610bde565b5261045081610bde565b50818061035c565b60209060405161046781610ac9565b60008152600083820152600060408201528282890101520161034e565b60ff6000610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160ff8152f35b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc576105a1610aa6565b6024359067ffffffffffffffff82116104bc57366023830112156104bc5781600401356105cd81610b26565b926105db6040519485610ae5565b8184526024602085019260051b820101903682116104bc57602401915b81831061084157505050815161ffff8110156104bc5761061790610b8f565b906106228351610b8f565b9073ffffffffffffffffffffffffffffffffffffffff1660005b845161ffff821690811015610813579081602073ffffffffffffffffffffffffffffffffffffffff6106706024958a610c1a565b5116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa806000916107db575b600494506107cb575060006106c28288610c1a565b525b602073ffffffffffffffffffffffffffffffffffffffff6106e5838a610c1a565b5116604051948580927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80600091610789575b61ffff9450610775575061073260ff9186610c1a565b525b1661ffff81146107465760010161063c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff61078391169186610c1a565b52610734565b919293906020823d82116107c3575b816107a560209383610ae5565b810103126102c75750906107bd61ffff949392610b81565b9061071c565b3d9150610798565b6107d58288610c1a565b526106c4565b919293906020823d821161080b575b816107f760209383610ae5565b810103126102c757505160049392916106ad565b3d91506107ea565b61082f8561083d86604051938493604085526040850190610b3e565b908382036020850152610b3e565b0390f35b823573ffffffffffffffffffffffffffffffffffffffff811681036104bc578152602092830192016105f8565b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160018152f35b346104bc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc5760043573ffffffffffffffffffffffffffffffffffffffff81168091036104bc577f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa9182156109f957600092610a05575b50906020600492604051938480927f1a6865020000000000000000000000000000000000000000000000000000000082525afa9182156109f95760009261099a575b506fffffffffffffffffffffffffffffffff60409283519260020b8352166020820152f35b6020813d6020116109f1575b816109b360209383610ae5565b810103126109ed5751916fffffffffffffffffffffffffffffffff831683036102c757506fffffffffffffffffffffffffffffffff610975565b8280fd5b3d91506109a6565b6040513d6000823e3d90fd5b9160e0833d60e011610a9e575b81610a1f60e09383610ae5565b810103126102c757825173ffffffffffffffffffffffffffffffffffffffff8116036102c7576020830151928360020b84036102eb5780610a64604060c09301610b72565b50610a7160608201610b72565b50610a7e60808201610b72565b50610a8b60a08201610b81565b500151801515036102c757506020610933565b3d9150610a12565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104bc57565b6060810190811067ffffffffffffffff82111761048d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761048d57604052565b67ffffffffffffffff811161048d5760051b60200190565b906020808351928381520192019060005b818110610b5c5750505090565b8251845260209384019390920191600101610b4f565b519061ffff821682036104bc57565b519060ff821682036104bc57565b90610b9982610b26565b610ba66040519182610ae5565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610bd48294610b26565b0190602036910137565b805115610beb5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015610beb5760209160051b01019056fea26469706673582212205696eb2dd0fb23433a05a3bbbc207a0d1a56c25d660d156565443d6ee58f2d2c64736f6c634300081a0033a2646970667358221220c657d65f20b7570f17a40dbfe89bb03fa493967accd8360356719772b5f75c6064736f6c634300081a0033","sourceMap":"407:1194:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:28:1;407:1194:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;473:19;;;;1590:14:0;473:19:53;;;;;407:1194;473:19;;407:1194;473:19;;;;;;;;407:1194;;;;;522:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;407:1194;;563:20;;;;;;;;522:14;563:20;;;;;;;;;;;;;;;;;;;407:1194;;1058:61:65;;;:::i;:::-;4671:3:75;407:1194:53;;4701:2:75;4895:121;;;407:1194:53;4762:3:75;407:1194:53;4895:121:75;;407:1194:53;4790:2:75;4895:121;;;407:1194:53;4825:2:75;4895:121;;;407:1194:53;;;1058:61:65;;;:::i;:::-;4671:3:75;407:1194:53;;4701:2:75;4895:121;5066;;407:1194:53;4762:3:75;407:1194:53;5066:121:75;;407:1194:53;4790:2:75;4895:121;5066;;407:1194:53;4825:2:75;4895:121;5066;;407:1194:53;;;1590:14:0;407:1194:53;1590:14:0;;;;;522::53;1590::0;;;;;;522::53;1590::0;;407:1194:53;1590:14:0;4248:11:75;407:1194:53;;4895:121:75;5238:241;;407:1194:53;4344:11:75;407:1194:53;;;5238:241:75;;407:1194:53;4436:2:75;407:1194:53;;4895:121:75;5238:241;;407:1194:53;4517:3:75;407:1194:53;;4895:121:75;5238:241;;407:1194:53;;;;5238:241:75;;407:1194:53;;;5238:241:75;;;668:10:53;;407:1194;;;5238:241:75;;668:10:53;;407:1194;;5238:241:75;;;407:1194:53;734:42;407:1194;;5238:241:75;;;407:1194:53;853:42;407:1194;;5238:241:75;;;407:1194:53;966:42;407:1194;;;;5496:20:75;;;;;;;;;;;;;;;;;407:1194:53;5496:20:75;;;;;;;407:1194:53;5496:20:75;;407:1194:53;5496:20:75;;;;;;;407:1194:53;5496:20:75;;1590:14:0;407:1194:53;5496:20:75;;;;;;;4895:121;5496:20;;;;407:1194:53;1590:14:0;;;407:1194:53;1590:14:0;4895:121:75;407:1194:53;;1590:14:0;407:1194:53;;;;;;;;4895:121:75;407:1194:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5238:241:75;407:1194:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;407:1194:53;;;;;1590:14:0;407:1194:53;;;;;1590:14:0;407:1194:53;;;;;1590:14:0;407:1194:53;;;;;1590:14:0;5496:20:75;;;;;;;;;;407:1194:53;;1107:45;;;;;;;;;;522:14;1107:45;;;;;;;407:1194;4895:121:75;1107:45:53;;;;;;;407:1194;1590:14:0;;407:1194:53;4895:121:75;1590:14:0;;;;407:1194:53;1590:14:0;;;1107:45:53;;;;;;;;;407:1194;;1185:51;;;;;;;;;;522:14;1185:51;;;;;;407:1194;1185:51;;4895:121:75;1185:51:53;;;;668:10;1590:14:0;;407:1194:53;4895:121:75;1590:14:0;;;1229:6:53;407:1194;1590:14:0;;;1185:51:53;;;;;;;;;;407:1194;;1293:42;;;;;;;;522:14;1293:42;;;;;4895:121:75;1293:42:53;;;;;;1076::65;1590:14:0;;1293:42:53;;;;;;;;;;407:1194;1345:18;;;;407:1194;;;1590:14:0;1345:18:53;;;;407:1194;1345:18;;407:1194;1345:18;;;;;;;;407:1194;1058:61:65;407:1194:53;1574:17;1058:61:65;1425:16:53;1058:61:65;;;;1502:14:53;1058:61:65;;1374:28:53;407:1194;;1058:61:65;407:1194:53;1058:61:65;;:::i;:::-;;;;;4895:121:75;1058:61:65;;;1374:28:53;:::i;:::-;407:1194;1425:16;:::i;:::-;1452:27;407:1194;;1058:61:65;407:1194:53;1058:61:65;;:::i;:::-;;;;;4895:121:75;1058:61:65;;;1452:27:53;:::i;1502:14::-;1527:24;407:1194;;1058:61:65;407:1194:53;1058:61:65;;:::i;:::-;;;;;4895:121:75;1058:61:65;;;1527:24:53;:::i;1574:17::-;407:1194;;1345:18;;;;;;;;:::i;:::-;407:1194;;1345:18;;;;;407:1194;;;;1345:18;407:1194;;1590:14:0;407:1194:53;;1590:14:0;;;;1293:42:53;407:1194;;1590:14:0;407:1194:53;;1590:14:0;;;;1293:42:53;4790:2:75;1590:14:0;;;;;407:1194:53;1590:14:0;;1107:45:53;4790:2:75;1590:14:0;;;;;407:1194:53;1590:14:0;;5496:20:75;1590:14:0;;4790:2:75;1590:14:0;;;;;407:1194:53;1590:14:0;;563:20:53;1590:14:0;;;;;;407:1194:53;1590:14:0;;522::53;407:1194;;;1590:14:0;;;;;;;;522::53;1590::0;;;;;;407:1194:53;1590:14:0;;473:19:53;;;;:::i;:::-;;;;;;407:1194;;;1590:14:0;407:1194:53;1590:14:0;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1590:14:0;;;;;-1:-1:-1;1590:14:0;;;;;;;;;;;;;;;;;;;;;:::o;6598:121:11:-;407:1194:53;;6669:42:11;;;;;;;;;;407:1194:53;;;;;;;;;-1:-1:-1;407:1194:53;;;;;;;;;6669:42:11;407:1194:53;;1590:14:0;;407:1194:53;-1:-1:-1;407:1194:53;;;;;;;;;1590:14:0;;407:1194:53;;6669:42:11;;1590:14:0;6669:42:11;;;;;;:::i;:::-;1222:159;407:1194:53;;1222:159:11;;591:42;1222:159;;;6598:121::o;407:1194:53:-;;6669:42:11;407:1194:53;;;;;;;;;;;;;;;6841:116:11;1222:159;6841:116;;407:1194:53;;;6906:43:11;;;;;;407:1194:53;6906:43:11;;;1590:14:0;6906:43:11;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":{\"script/Deploy.sol\":\"Deploy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"script/Deploy.sol\":{\"keccak256\":\"0xfbf9ed0c87324b1febb0a750da8ad82b29df3c1167df2582fccd83d669b945e5\",\"urls\":[\"bzz-raw://43448c9fa3cc6c5da8b6732691cf45e35580f6a8df6d3d110172058140125169\",\"dweb:/ipfs/Qme8a3HBTbubrzuPQ8in36acEtxXykHz2zEun1FfSSk1BF\"]},\"src/core/FeeManager.sol\":{\"keccak256\":\"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf\",\"urls\":[\"bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4\",\"dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultFactory.sol\":{\"keccak256\":\"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a\",\"urls\":[\"bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668\",\"dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe\",\"urls\":[\"bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a\",\"dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]},\"src/more/FeeManagerLib.sol\":{\"keccak256\":\"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707\",\"urls\":[\"bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885\",\"dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck\"]},\"src/more/QueryHelper.sol\":{\"keccak256\":\"0x6f8ccbeadf0a9c2f9f01c8df7f9d87a9e3c825364233ddd357d073daa294c3b4\",\"urls\":[\"bzz-raw://f6748ab572c37f51911bd17a850439de25b5535702806913a086d7f4cb689414\",\"dweb:/ipfs/QmRgFea76vtepFeWx4fhZEzgUb76KQyKsmAztifDEMCXTx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/Deploy.sol":"Deploy"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"script/Deploy.sol":{"keccak256":"0xfbf9ed0c87324b1febb0a750da8ad82b29df3c1167df2582fccd83d669b945e5","urls":["bzz-raw://43448c9fa3cc6c5da8b6732691cf45e35580f6a8df6d3d110172058140125169","dweb:/ipfs/Qme8a3HBTbubrzuPQ8in36acEtxXykHz2zEun1FfSSk1BF"],"license":null},"src/core/FeeManager.sol":{"keccak256":"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf","urls":["bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4","dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp"],"license":null},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultFactory.sol":{"keccak256":"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a","urls":["bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668","dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe","urls":["bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a","dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null},"src/more/FeeManagerLib.sol":{"keccak256":"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707","urls":["bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885","dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck"],"license":null},"src/more/QueryHelper.sol":{"keccak256":"0x6f8ccbeadf0a9c2f9f01c8df7f9d87a9e3c825364233ddd357d073daa294c3b4","urls":["bzz-raw://f6748ab572c37f51911bd17a850439de25b5535702806913a086d7f4cb689414","dweb:/ipfs/QmRgFea76vtepFeWx4fhZEzgUb76KQyKsmAztifDEMCXTx"],"license":null}},"version":1},"id":53} \ No newline at end of file diff --git a/deployment/arb1/out/DeployArbitrum.sol/DeployArbitrum.json b/deployment/arb1/out/DeployArbitrum.sol/DeployArbitrum.json deleted file mode 100644 index 91ce66b..0000000 --- a/deployment/arb1/out/DeployArbitrum.sol/DeployArbitrum.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":"0x608080604052346026576201000162ff00ff19600c541617600c5561c7d0908161002c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346108d657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108d657737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156108d6577f7fb5297f00000000000000000000000000000000000000000000000000000000815281808260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561088c576108c6575b50506040516109c08082019082821067ffffffffffffffff8311176108995790829161b0f58339039082f0801561088c57604051611e7a8082019082821067ffffffffffffffff83111761085f579082916121af8339039083f080156107725773ffffffffffffffffffffffffffffffffffffffff16604051610196816108da565b83815283602082015260b5604082015260236060820152601e60808201526040516101c0816108da565b84815284602082015260b5604082015260236060820152601e608082015260405191610160830183811067ffffffffffffffff8211176107f8579067ffffffffffffffff929160405262093a8084526020840191610e1083526040850191600a83526060860191606483526080870191825260a0870190815260c08701907312db90820dafed100e40e21128e40dcd4ff6b331825260e088019273822e57d95444f9bf373827950068a877f7c7f5fc845261010089019473078e0c1112262433375b9aaa987bff09a08e863c86526101208a019673411c418c005ebdefb551e5e6b734520ef2591f5188526101408b019873152a3a04ce063dc77497aa06b6a09fefd271e7168a526040519b6117538d8181019d8e91821091111761083057966103ba8d9b978f9d9a946102609f8f73ffffffffffffffffffffffffffffffffffffffff9e999a8f9d8e9c60ff8e9c63ffffffff61037b988f9d8290859760809a610a5c9039511689525116602088015251166040860152511660608401525191019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b516101208d019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b51166101c08a015251166101e088015251166102008601525116610220840152511661024082015203019084f0801561082557604051615491918282019282841067ffffffffffffffff8511176107f85773ffffffffffffffffffffffffffffffffffffffff6060928492615c64843986865216938460208201527382af49447d8a07e3bd95bd0d56f35241523fbab1604082015203019085f080156107ed5773ffffffffffffffffffffffffffffffffffffffff1691604051611c3b8082019082821067ffffffffffffffff8311176107c057606091839161402983397312db90820dafed100e40e21128e40dcd4ff6b331815286602082015262015180604082015203019086f09182156107b557604051610ce68082019082821067ffffffffffffffff83111761078857602091839161bab58339731f98431c8ad98523631ae4a59f267346ea31f984815203019087f091821561077d57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561076e57866040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561077257610751575b506106bc9261062a61074e986105d561071198979561066795506040516105a6604082610925565b600e81527f417262697472756d526f757465720000000000000000000000000000000000006020820152610966565b73ffffffffffffffffffffffffffffffffffffffff604051916105f9604084610925565b600883527f4465786f7264657200000000000000000000000000000000000000000000000060208401521690610966565b604051610638604082610925565b600a81527f4665654d616e61676572000000000000000000000000000000000000000000006020820152610966565b73ffffffffffffffffffffffffffffffffffffffff6040519161068b604084610925565b600b83527f517565727948656c70657200000000000000000000000000000000000000000060208401521690610966565b73ffffffffffffffffffffffffffffffffffffffff604051916106e0604084610925565b600c83527f5661756c74466163746f7279000000000000000000000000000000000000000060208401521690610966565b60405161071f604082610925565b600981527f5661756c74496d706c00000000000000000000000000000000000000000000006020820152610966565b80f35b81610760919695939496610925565b61076e57919290863861057e565b8680fd5b6040513d84823e3d90fd5b6040513d88823e3d90fd5b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d87823e3d90fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d86823e3d90fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d85823e3d90fd5b505060248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6108cf91610925565b3881610114565b5080fd5b60a0810190811067ffffffffffffffff8211176108f657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108f657604052565b6040519060208201927f319af3330000000000000000000000000000000000000000000000000000000084526040602484015281519182606485015260005b838110610a4557505091610a326084827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8673ffffffffffffffffffffffffffffffffffffffff60009a98998b87819c880101521660448501520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610925565b51906a636f6e736f6c652e6c6f675afa50565b80602080928401015160848288010152016109a556fe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360a0806040523460225760006080526109989081610028823960805181608c0152f35b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301efa5e51461035a578063f09e5827146100b55763f851a4400361000e57346100b05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b346100b05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b0576100ec610562565b60243567ffffffffffffffff81116100b057366023820112156100b057806004013561011781610669565b9161012560405193846105c9565b8183526024602084019260071b820101903682116100b057602401915b8183106102975750505080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061019161017b83610669565b9261018960405194856105c9565b808452610669565b0160005b81811061028657505060005b825160ff82169081101561021b57906101da826101c96101c360ff958861073b565b51610803565b6101d3828761073b565b528461073b565b501660ff81146101ec576001016101a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028283867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff00000000000000000000000000000000604051921691806102738582610681565b0390a260405191829182610681565b0390f35b806060602080938601015201610195565b600083360390608082126103575750604051906102b382610591565b843573ffffffffffffffffffffffffffffffffffffffff811681036100b0578252602085013567ffffffffffffffff811681036100b0576020830152604085013560ff811681036100b0576020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa091604085015201126100b057608091602091604051610340816105ad565b606087013581526060820152815201920191610142565b80fd5b346100b05760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057610391610562565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100b0576040516103c781610591565b60243573ffffffffffffffffffffffffffffffffffffffff811681036100b057815260443567ffffffffffffffff811681036100b057602082015260643560ff811681036100b057604082015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c3601126100b05761045d9060405161044e816105ad565b60843581526060820152610803565b60408051929061046d81856105c9565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160005b8181106105225761028284867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff0000000000000000000000000000000087846104ef856106ff565b526104f9846106ff565b5061050b604051928392169482610681565b0390a260405191829160208352602083019061060a565b806060602080938801015201610496565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600435907fffffffffffffffffffffffffffffffff00000000000000000000000000000000821682036100b057565b6080810190811067ffffffffffffffff82111761053357604052565b6020810190811067ffffffffffffffff82111761053357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053357604052565b919082519283825260005b8481106106545750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610615565b67ffffffffffffffff81116105335760051b60200190565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106106b457505050505090565b90919293946020806106f0837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08660019603018752895161060a565b970193019301919392906106a5565b80511561070c5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805182101561070c5760209160051b010190565b600060443d106107f2576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176107fd578282019283519167ffffffffffffffff83116107f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116107f557506107f2929101602001906105c9565b90565b949350505050565b92915050565b90606091805173ffffffffffffffffffffffffffffffffffffffff600091169167ffffffffffffffff602082015116606060ff60408401511692015193803b1561095e578392918360649260405197889586947f6e98833d000000000000000000000000000000000000000000000000000000008652600486015260248501525160448401525af1918261094e575b50906109385760018160033d11610928575b6308c379a0146108c2575b6108b65750565b604051903d90823e3d90fd5b6108ca61074f565b806108d6575b506108af565b93505080928051156108ea575b92386108d0565b506040516108f96040826105c9565b600381527f554e4b000000000000000000000000000000000000000000000000000000000060208201526108e3565b50600482803e815160e01c6108a4565b6040519192506109496020836105c9565b815290565b81610958916105c9565b38610892565b8380fdfea26469706673582212200e22ce0a5a5272d8a3a31d4bab405a71b5789e4283c0c7ebdb73318c731fefc764736f6c634300081a003360a034606657601f610ce638819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b0381168103606657608052604051610c64908161008282396080518161050c0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081633c38ccbb146108a85750806354fd4d501461086e5780636a385ae91461056a578063b8df978014610530578063c45a0155146104c15763d85c32c71461006157600080fd5b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57610098610aa6565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036104bc576040516080810181811067ffffffffffffffff82111761048d57604052606481526101f46020820152610bb860408201526127106060820152600092600073ffffffffffffffffffffffffffffffffffffffff600092169360009281861015935b600460ff821610156102ef57600062ffffff611fe08360051b168801511686816040805161014781610ac9565b8c815288602082015201526102eb5773ffffffffffffffffffffffffffffffffffffffff60405160208101908b825287604082015283606082015260608152610191608082610ae5565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460558201526055815261021f607582610ae5565b519020169081156102de576040517f70a08231000000000000000000000000000000000000000000000000000000008152600481018390526020816024818e5afa9384156102d2578094610299575b5050868311610288575b505050600160ff915b011661011a565b99509094509150600160ff38610278565b909193506020823d82116102ca575b816102b560209383610ae5565b810103126102c757505191388061026e565b80fd5b3d91506102a8565b604051903d90823e3d90fd5b505050600160ff91610281565b5080fd5b5062ffffff87168015801592906104845760ff60015b16927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061034a61033486610b26565b956103426040519788610ae5565b808752610b26565b0160005b81811061045857505061040b575b5050604051602081019160208252805180935260206040830191019260005b8181106103885783830384f35b90918451805160028110156103dc578273ffffffffffffffffffffffffffffffffffffffff60406020946060946001975262ffffff868201511686850152015116604082015201950191019391909361037b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff906040519261042e84610ac9565b60018452602084015216604082015261044682610bde565b5261045081610bde565b50818061035c565b60209060405161046781610ac9565b60008152600083820152600060408201528282890101520161034e565b60ff6000610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160ff8152f35b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc576105a1610aa6565b6024359067ffffffffffffffff82116104bc57366023830112156104bc5781600401356105cd81610b26565b926105db6040519485610ae5565b8184526024602085019260051b820101903682116104bc57602401915b81831061084157505050815161ffff8110156104bc5761061790610b8f565b906106228351610b8f565b9073ffffffffffffffffffffffffffffffffffffffff1660005b845161ffff821690811015610813579081602073ffffffffffffffffffffffffffffffffffffffff6106706024958a610c1a565b5116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa806000916107db575b600494506107cb575060006106c28288610c1a565b525b602073ffffffffffffffffffffffffffffffffffffffff6106e5838a610c1a565b5116604051948580927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80600091610789575b61ffff9450610775575061073260ff9186610c1a565b525b1661ffff81146107465760010161063c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff61078391169186610c1a565b52610734565b919293906020823d82116107c3575b816107a560209383610ae5565b810103126102c75750906107bd61ffff949392610b81565b9061071c565b3d9150610798565b6107d58288610c1a565b526106c4565b919293906020823d821161080b575b816107f760209383610ae5565b810103126102c757505160049392916106ad565b3d91506107ea565b61082f8561083d86604051938493604085526040850190610b3e565b908382036020850152610b3e565b0390f35b823573ffffffffffffffffffffffffffffffffffffffff811681036104bc578152602092830192016105f8565b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160018152f35b346104bc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc5760043573ffffffffffffffffffffffffffffffffffffffff81168091036104bc577f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa9182156109f957600092610a05575b50906020600492604051938480927f1a6865020000000000000000000000000000000000000000000000000000000082525afa9182156109f95760009261099a575b506fffffffffffffffffffffffffffffffff60409283519260020b8352166020820152f35b6020813d6020116109f1575b816109b360209383610ae5565b810103126109ed5751916fffffffffffffffffffffffffffffffff831683036102c757506fffffffffffffffffffffffffffffffff610975565b8280fd5b3d91506109a6565b6040513d6000823e3d90fd5b9160e0833d60e011610a9e575b81610a1f60e09383610ae5565b810103126102c757825173ffffffffffffffffffffffffffffffffffffffff8116036102c7576020830151928360020b84036102eb5780610a64604060c09301610b72565b50610a7160608201610b72565b50610a7e60808201610b72565b50610a8b60a08201610b81565b500151801515036102c757506020610933565b3d9150610a12565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104bc57565b6060810190811067ffffffffffffffff82111761048d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761048d57604052565b67ffffffffffffffff811161048d5760051b60200190565b906020808351928381520192019060005b818110610b5c5750505090565b8251845260209384019390920191600101610b4f565b519061ffff821682036104bc57565b519060ff821682036104bc57565b90610b9982610b26565b610ba66040519182610ae5565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610bd48294610b26565b0190602036910137565b805115610beb5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015610beb5760209160051b01019056fea26469706673582212205696eb2dd0fb23433a05a3bbbc207a0d1a56c25d660d156565443d6ee58f2d2c64736f6c634300081a0033a2646970667358221220576c6f08db2f76d7338b425a894522777f4401fb09472a4cc016021077f404a864736f6c634300081a0033","sourceMap":"314:1445:54:-:0;;;;;;;;;;3166:4:2;314:1445:54;;;3166:4:2;314:1445:54;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346108d657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108d657737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156108d6577f7fb5297f00000000000000000000000000000000000000000000000000000000815281808260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561088c576108c6575b50506040516109c08082019082821067ffffffffffffffff8311176108995790829161b0f58339039082f0801561088c57604051611e7a8082019082821067ffffffffffffffff83111761085f579082916121af8339039083f080156107725773ffffffffffffffffffffffffffffffffffffffff16604051610196816108da565b83815283602082015260b5604082015260236060820152601e60808201526040516101c0816108da565b84815284602082015260b5604082015260236060820152601e608082015260405191610160830183811067ffffffffffffffff8211176107f8579067ffffffffffffffff929160405262093a8084526020840191610e1083526040850191600a83526060860191606483526080870191825260a0870190815260c08701907312db90820dafed100e40e21128e40dcd4ff6b331825260e088019273822e57d95444f9bf373827950068a877f7c7f5fc845261010089019473078e0c1112262433375b9aaa987bff09a08e863c86526101208a019673411c418c005ebdefb551e5e6b734520ef2591f5188526101408b019873152a3a04ce063dc77497aa06b6a09fefd271e7168a526040519b6117538d8181019d8e91821091111761083057966103ba8d9b978f9d9a946102609f8f73ffffffffffffffffffffffffffffffffffffffff9e999a8f9d8e9c60ff8e9c63ffffffff61037b988f9d8290859760809a610a5c9039511689525116602088015251166040860152511660608401525191019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b516101208d019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b51166101c08a015251166101e088015251166102008601525116610220840152511661024082015203019084f0801561082557604051615491918282019282841067ffffffffffffffff8511176107f85773ffffffffffffffffffffffffffffffffffffffff6060928492615c64843986865216938460208201527382af49447d8a07e3bd95bd0d56f35241523fbab1604082015203019085f080156107ed5773ffffffffffffffffffffffffffffffffffffffff1691604051611c3b8082019082821067ffffffffffffffff8311176107c057606091839161402983397312db90820dafed100e40e21128e40dcd4ff6b331815286602082015262015180604082015203019086f09182156107b557604051610ce68082019082821067ffffffffffffffff83111761078857602091839161bab58339731f98431c8ad98523631ae4a59f267346ea31f984815203019087f091821561077d57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561076e57866040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561077257610751575b506106bc9261062a61074e986105d561071198979561066795506040516105a6604082610925565b600e81527f417262697472756d526f757465720000000000000000000000000000000000006020820152610966565b73ffffffffffffffffffffffffffffffffffffffff604051916105f9604084610925565b600883527f4465786f7264657200000000000000000000000000000000000000000000000060208401521690610966565b604051610638604082610925565b600a81527f4665654d616e61676572000000000000000000000000000000000000000000006020820152610966565b73ffffffffffffffffffffffffffffffffffffffff6040519161068b604084610925565b600b83527f517565727948656c70657200000000000000000000000000000000000000000060208401521690610966565b73ffffffffffffffffffffffffffffffffffffffff604051916106e0604084610925565b600c83527f5661756c74466163746f7279000000000000000000000000000000000000000060208401521690610966565b60405161071f604082610925565b600981527f5661756c74496d706c00000000000000000000000000000000000000000000006020820152610966565b80f35b81610760919695939496610925565b61076e57919290863861057e565b8680fd5b6040513d84823e3d90fd5b6040513d88823e3d90fd5b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d87823e3d90fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d86823e3d90fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d85823e3d90fd5b505060248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6108cf91610925565b3881610114565b5080fd5b60a0810190811067ffffffffffffffff8211176108f657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108f657604052565b6040519060208201927f319af3330000000000000000000000000000000000000000000000000000000084526040602484015281519182606485015260005b838110610a4557505091610a326084827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8673ffffffffffffffffffffffffffffffffffffffff60009a98998b87819c880101521660448501520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610925565b51906a636f6e736f6c652e6c6f675afa50565b80602080928401015160848288010152016109a556fe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360a0806040523460225760006080526109989081610028823960805181608c0152f35b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301efa5e51461035a578063f09e5827146100b55763f851a4400361000e57346100b05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b346100b05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b0576100ec610562565b60243567ffffffffffffffff81116100b057366023820112156100b057806004013561011781610669565b9161012560405193846105c9565b8183526024602084019260071b820101903682116100b057602401915b8183106102975750505080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061019161017b83610669565b9261018960405194856105c9565b808452610669565b0160005b81811061028657505060005b825160ff82169081101561021b57906101da826101c96101c360ff958861073b565b51610803565b6101d3828761073b565b528461073b565b501660ff81146101ec576001016101a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028283867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff00000000000000000000000000000000604051921691806102738582610681565b0390a260405191829182610681565b0390f35b806060602080938601015201610195565b600083360390608082126103575750604051906102b382610591565b843573ffffffffffffffffffffffffffffffffffffffff811681036100b0578252602085013567ffffffffffffffff811681036100b0576020830152604085013560ff811681036100b0576020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa091604085015201126100b057608091602091604051610340816105ad565b606087013581526060820152815201920191610142565b80fd5b346100b05760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057610391610562565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100b0576040516103c781610591565b60243573ffffffffffffffffffffffffffffffffffffffff811681036100b057815260443567ffffffffffffffff811681036100b057602082015260643560ff811681036100b057604082015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c3601126100b05761045d9060405161044e816105ad565b60843581526060820152610803565b60408051929061046d81856105c9565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160005b8181106105225761028284867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff0000000000000000000000000000000087846104ef856106ff565b526104f9846106ff565b5061050b604051928392169482610681565b0390a260405191829160208352602083019061060a565b806060602080938801015201610496565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600435907fffffffffffffffffffffffffffffffff00000000000000000000000000000000821682036100b057565b6080810190811067ffffffffffffffff82111761053357604052565b6020810190811067ffffffffffffffff82111761053357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053357604052565b919082519283825260005b8481106106545750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610615565b67ffffffffffffffff81116105335760051b60200190565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106106b457505050505090565b90919293946020806106f0837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08660019603018752895161060a565b970193019301919392906106a5565b80511561070c5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805182101561070c5760209160051b010190565b600060443d106107f2576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176107fd578282019283519167ffffffffffffffff83116107f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116107f557506107f2929101602001906105c9565b90565b949350505050565b92915050565b90606091805173ffffffffffffffffffffffffffffffffffffffff600091169167ffffffffffffffff602082015116606060ff60408401511692015193803b1561095e578392918360649260405197889586947f6e98833d000000000000000000000000000000000000000000000000000000008652600486015260248501525160448401525af1918261094e575b50906109385760018160033d11610928575b6308c379a0146108c2575b6108b65750565b604051903d90823e3d90fd5b6108ca61074f565b806108d6575b506108af565b93505080928051156108ea575b92386108d0565b506040516108f96040826105c9565b600381527f554e4b000000000000000000000000000000000000000000000000000000000060208201526108e3565b50600482803e815160e01c6108a4565b6040519192506109496020836105c9565b815290565b81610958916105c9565b38610892565b8380fdfea26469706673582212200e22ce0a5a5272d8a3a31d4bab405a71b5789e4283c0c7ebdb73318c731fefc764736f6c634300081a003360a034606657601f610ce638819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b0381168103606657608052604051610c64908161008282396080518161050c0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081633c38ccbb146108a85750806354fd4d501461086e5780636a385ae91461056a578063b8df978014610530578063c45a0155146104c15763d85c32c71461006157600080fd5b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57610098610aa6565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036104bc576040516080810181811067ffffffffffffffff82111761048d57604052606481526101f46020820152610bb860408201526127106060820152600092600073ffffffffffffffffffffffffffffffffffffffff600092169360009281861015935b600460ff821610156102ef57600062ffffff611fe08360051b168801511686816040805161014781610ac9565b8c815288602082015201526102eb5773ffffffffffffffffffffffffffffffffffffffff60405160208101908b825287604082015283606082015260608152610191608082610ae5565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460558201526055815261021f607582610ae5565b519020169081156102de576040517f70a08231000000000000000000000000000000000000000000000000000000008152600481018390526020816024818e5afa9384156102d2578094610299575b5050868311610288575b505050600160ff915b011661011a565b99509094509150600160ff38610278565b909193506020823d82116102ca575b816102b560209383610ae5565b810103126102c757505191388061026e565b80fd5b3d91506102a8565b604051903d90823e3d90fd5b505050600160ff91610281565b5080fd5b5062ffffff87168015801592906104845760ff60015b16927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061034a61033486610b26565b956103426040519788610ae5565b808752610b26565b0160005b81811061045857505061040b575b5050604051602081019160208252805180935260206040830191019260005b8181106103885783830384f35b90918451805160028110156103dc578273ffffffffffffffffffffffffffffffffffffffff60406020946060946001975262ffffff868201511686850152015116604082015201950191019391909361037b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff906040519261042e84610ac9565b60018452602084015216604082015261044682610bde565b5261045081610bde565b50818061035c565b60209060405161046781610ac9565b60008152600083820152600060408201528282890101520161034e565b60ff6000610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160ff8152f35b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc576105a1610aa6565b6024359067ffffffffffffffff82116104bc57366023830112156104bc5781600401356105cd81610b26565b926105db6040519485610ae5565b8184526024602085019260051b820101903682116104bc57602401915b81831061084157505050815161ffff8110156104bc5761061790610b8f565b906106228351610b8f565b9073ffffffffffffffffffffffffffffffffffffffff1660005b845161ffff821690811015610813579081602073ffffffffffffffffffffffffffffffffffffffff6106706024958a610c1a565b5116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa806000916107db575b600494506107cb575060006106c28288610c1a565b525b602073ffffffffffffffffffffffffffffffffffffffff6106e5838a610c1a565b5116604051948580927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80600091610789575b61ffff9450610775575061073260ff9186610c1a565b525b1661ffff81146107465760010161063c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff61078391169186610c1a565b52610734565b919293906020823d82116107c3575b816107a560209383610ae5565b810103126102c75750906107bd61ffff949392610b81565b9061071c565b3d9150610798565b6107d58288610c1a565b526106c4565b919293906020823d821161080b575b816107f760209383610ae5565b810103126102c757505160049392916106ad565b3d91506107ea565b61082f8561083d86604051938493604085526040850190610b3e565b908382036020850152610b3e565b0390f35b823573ffffffffffffffffffffffffffffffffffffffff811681036104bc578152602092830192016105f8565b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160018152f35b346104bc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc5760043573ffffffffffffffffffffffffffffffffffffffff81168091036104bc577f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa9182156109f957600092610a05575b50906020600492604051938480927f1a6865020000000000000000000000000000000000000000000000000000000082525afa9182156109f95760009261099a575b506fffffffffffffffffffffffffffffffff60409283519260020b8352166020820152f35b6020813d6020116109f1575b816109b360209383610ae5565b810103126109ed5751916fffffffffffffffffffffffffffffffff831683036102c757506fffffffffffffffffffffffffffffffff610975565b8280fd5b3d91506109a6565b6040513d6000823e3d90fd5b9160e0833d60e011610a9e575b81610a1f60e09383610ae5565b810103126102c757825173ffffffffffffffffffffffffffffffffffffffff8116036102c7576020830151928360020b84036102eb5780610a64604060c09301610b72565b50610a7160608201610b72565b50610a7e60808201610b72565b50610a8b60a08201610b81565b500151801515036102c757506020610933565b3d9150610a12565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104bc57565b6060810190811067ffffffffffffffff82111761048d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761048d57604052565b67ffffffffffffffff811161048d5760051b60200190565b906020808351928381520192019060005b818110610b5c5750505090565b8251845260209384019390920191600101610b4f565b519061ffff821682036104bc57565b519060ff821682036104bc57565b90610b9982610b26565b610ba66040519182610ae5565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610bd48294610b26565b0190602036910137565b805115610beb5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015610beb5760209160051b01019056fea26469706673582212205696eb2dd0fb23433a05a3bbbc207a0d1a56c25d660d156565443d6ee58f2d2c64736f6c634300081a0033a2646970667358221220576c6f08db2f76d7338b425a894522777f4401fb09472a4cc016021077f404a864736f6c634300081a0033","sourceMap":"314:1445:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:28:1;314:1445:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;904:19;;;;1590:14:0;904:19:54;;;;;314:1445;904:19;;314:1445;904:19;;;;;;;;314:1445;;;;;954:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;314:1445;;995:20;;;;;;;;954:14;995:20;;;;;;;;;;;;;;;;;;;314:1445;;;;1058:61:65;;;:::i;:::-;314:1445:54;;;1269:121:75;;;;314:1445:54;1136:3:75;314:1445:54;1269:121:75;;314:1445:54;1164:2:75;1269:121;;;314:1445:54;1199:2:75;1269:121;;;314:1445:54;;;1058:61:65;;;:::i;:::-;314:1445:54;;;1440:121:75;1269;1440;;314:1445:54;1136:3:75;314:1445:54;1440:121:75;;314:1445:54;1164:2:75;1269:121;1440;;314:1445:54;1199:2:75;1269:121;1440;;314:1445:54;;;1590:14:0;314:1445:54;1590:14:0;;;;;954::54;1590::0;;;;;;954::54;1590::0;;314:1445:54;1590:14:0;736:16:75;314:1445:54;;1269:121:75;1612:241;;314:1445:54;805:11:75;314:1445:54;;;1612:241:75;;314:1445:54;867:2:75;314:1445:54;;1269:121:75;1612:241;;314:1445:54;948:3:75;314:1445:54;;1269:121:75;1612:241;;314:1445:54;;;;1612:241:75;;314:1445:54;;;1612:241:75;;;314:1445:54;412:42;314:1445;;;1612:241:75;;314:1445:54;492:42;314:1445;;1612:241:75;;;314:1445:54;587:42;314:1445;;1612:241:75;;;314:1445:54;680:42;314:1445;;1612:241:75;;;314:1445:54;774:42;314:1445;;;;1870:20:75;;;;;;;;;;;;;;;;;314:1445:54;1870:20:75;;;;;;;314:1445:54;1870:20:75;;314:1445:54;1870:20:75;;;;;;;314:1445:54;1870:20:75;;1590:14:0;314:1445:54;1870:20:75;;;;;;;1269:121;1870:20;;;;314:1445:54;1590:14:0;;;314:1445:54;1590:14:0;1269:121:75;314:1445:54;;1590:14:0;314:1445:54;;;;;;;;1269:121:75;314:1445:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1612:241:75;314:1445:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;314:1445:54;;;;;1590:14:0;314:1445:54;;;;;1590:14:0;314:1445:54;;;;;1590:14:0;314:1445:54;;;;;1590:14:0;1870:20:75;;;;;;;;;314:1445:54;;1172:39;;;;;;;;;954:14;1172:39;;;;;314:1445;1269:121:75;1172:39:54;;;;;;1590:14:0;;;314:1445:54;1590:14:0;;1269:121:75;1590:14:0;;;850:42:54;314:1445;1590:14:0;;;1172:39:54;;;;;;;;;314:1445;;;;;1244:52;;;;;;;;954:14;1244:52;;;;;1269:121:75;1244:52:54;;;;;;412:42;1590:14:0;;;1269:121:75;1590:14:0;;;1283:12:54;314:1445;1590:14:0;;;1244:52:54;;;;;;;;;;314:1445;;1352:42;;;;;;;;954:14;1352:42;;;;;1269:121:75;1352:42:54;;;;;;1076::65;1590:14:0;;1352:42:54;;;;;;;;;;314:1445;1405:18;;;;314:1445;;;1590:14:0;1405:18:54;;;;314:1445;1405:18;;314:1445;1405:18;;;;;;;;314:1445;1058:61:65;1601:43:54;1058:61:65;1491:43:54;1710:40;1058:61:65;1434:47:54;1654:46;1058:61:65;;;1544:47:54;1058:61:65;;314:1445:54;;1058:61:65;314:1445:54;1058:61:65;;:::i;:::-;;;;;1269:121:75;1058:61:65;;;1434:47:54;:::i;:::-;314:1445;;;1058:61:65;;314:1445:54;1058:61:65;;:::i;:::-;;;;;1269:121:75;1058:61:65;;;314:1445:54;1491:43;;:::i;:::-;314:1445;;1058:61:65;314:1445:54;1058:61:65;;:::i;:::-;867:2:75;1058:61:65;;;1269:121:75;1058:61:65;;;1544:47:54;:::i;:::-;314:1445;;;1058:61:65;;314:1445:54;1058:61:65;;:::i;:::-;;;;;1269:121:75;1058:61:65;;;314:1445:54;1601:43;;:::i;:::-;314:1445;;;1058:61:65;;314:1445:54;1058:61:65;;:::i;:::-;;;;;1269:121:75;1058:61:65;;;314:1445:54;1654:46;;:::i;:::-;314:1445;;1058:61:65;314:1445:54;1058:61:65;;:::i;:::-;;;;;1269:121:75;1058:61:65;;;1710:40:54;:::i;:::-;314:1445;;1405:18;;;;;;;;;;:::i;:::-;314:1445;;1405:18;;;;;;;314:1445;;;;1405:18;314:1445;;1590:14:0;314:1445:54;;1590:14:0;;;;1352:42:54;314:1445;;1590:14:0;314:1445:54;;1590:14:0;;;;1352:42:54;1590:14:0;;;;;;314:1445:54;1590:14:0;;1244:52:54;314:1445;;1590:14:0;314:1445:54;;1590:14:0;;;;1244:52:54;1590:14:0;;;;;;314:1445:54;1590:14:0;;1172:39:54;314:1445;;1590:14:0;314:1445:54;;1590:14:0;;;;1172:39:54;1590:14:0;;;;;;314:1445:54;1590:14:0;;1870:20:75;314:1445:54;;1590:14:0;314:1445:54;;1590:14:0;;;;1870:20:75;1590:14:0;;;;;;;;314:1445:54;1590:14:0;;995:20:54;1590:14:0;;;;;;314:1445:54;1590:14:0;;954::54;314:1445;;;1590:14:0;;;;;;;;954::54;1590::0;;;;;;314:1445:54;1590:14:0;;904:19:54;;;;:::i;:::-;;;;;;314:1445;;;1590:14:0;314:1445:54;1590:14:0;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1590:14:0;;;;;-1:-1:-1;1590:14:0;;;;;;;;;;;;;;;;;;;;;:::o;8147:145:11:-;314:1445:54;;8230:54:11;;;;;;;;314:1445:54;8230:54:11;;;314:1445:54;;;;;;;;;-1:-1:-1;314:1445:54;;;;;;;;;8230:54:11;314:1445:54;;1590:14:0;;314:1445:54;;-1:-1:-1;314:1445:54;;;;;;;;;;;;;;;1590:14:0;;;314:1445:54;;8230:54:11;;1590:14:0;8230:54:11;;;;;;:::i;:::-;314:1445:54;1222:159:11;591:42;1222:159;;;8147:145::o;314:1445:54:-;;8230:54:11;314:1445:54;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":{\"script/DeployArbitrum.sol\":\"DeployArbitrum\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"script/DeployArbitrum.sol\":{\"keccak256\":\"0xeb602509b9cb4c4e76010330e310dbb3139f3c30a9e7cecb0f3b280eef82dbde\",\"urls\":[\"bzz-raw://e36dfe1481a3c93840beee9ef35f4b3772c347ba52899cd550fc147e298ba5aa\",\"dweb:/ipfs/QmekKzp8V8eaeBpEVkNujk7vji4x8uzMcw3q8VZ8HwwXy9\"]},\"src/core/FeeManager.sol\":{\"keccak256\":\"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf\",\"urls\":[\"bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4\",\"dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultFactory.sol\":{\"keccak256\":\"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a\",\"urls\":[\"bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668\",\"dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe\",\"urls\":[\"bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a\",\"dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]},\"src/more/FeeManagerLib.sol\":{\"keccak256\":\"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707\",\"urls\":[\"bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885\",\"dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck\"]},\"src/more/QueryHelper.sol\":{\"keccak256\":\"0x6f8ccbeadf0a9c2f9f01c8df7f9d87a9e3c825364233ddd357d073daa294c3b4\",\"urls\":[\"bzz-raw://f6748ab572c37f51911bd17a850439de25b5535702806913a086d7f4cb689414\",\"dweb:/ipfs/QmRgFea76vtepFeWx4fhZEzgUb76KQyKsmAztifDEMCXTx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/DeployArbitrum.sol":"DeployArbitrum"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"script/DeployArbitrum.sol":{"keccak256":"0xeb602509b9cb4c4e76010330e310dbb3139f3c30a9e7cecb0f3b280eef82dbde","urls":["bzz-raw://e36dfe1481a3c93840beee9ef35f4b3772c347ba52899cd550fc147e298ba5aa","dweb:/ipfs/QmekKzp8V8eaeBpEVkNujk7vji4x8uzMcw3q8VZ8HwwXy9"],"license":null},"src/core/FeeManager.sol":{"keccak256":"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf","urls":["bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4","dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp"],"license":null},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultFactory.sol":{"keccak256":"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a","urls":["bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668","dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe","urls":["bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a","dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null},"src/more/FeeManagerLib.sol":{"keccak256":"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707","urls":["bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885","dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck"],"license":null},"src/more/QueryHelper.sol":{"keccak256":"0x6f8ccbeadf0a9c2f9f01c8df7f9d87a9e3c825364233ddd357d073daa294c3b4","urls":["bzz-raw://f6748ab572c37f51911bd17a850439de25b5535702806913a086d7f4cb689414","dweb:/ipfs/QmRgFea76vtepFeWx4fhZEzgUb76KQyKsmAztifDEMCXTx"],"license":null}},"version":1},"id":54} \ No newline at end of file diff --git a/deployment/arb1/out/DeployMirror.sol/DeployMirror.json b/deployment/arb1/out/DeployMirror.sol/DeployMirror.json deleted file mode 100644 index 676c473..0000000 --- a/deployment/arb1/out/DeployMirror.sol/DeployMirror.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":"0x608080604052346026576201000162ff00ff19600c541617600c55613697908161002c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346103d757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d7577f561fe54000000000000000000000000000000000000000000000000000000000815260406004820152600460448201527f4e46504d00000000000000000000000000000000000000000000000000000000606482015273c36442b4a4522e871399cd717abdd847ab11fe886024820152602081608481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156103db57829161047f575b50604051907f561fe54000000000000000000000000000000000000000000000000000000000825260406004830152600b60448301527f535741505f524f55544552000000000000000000000000000000000000000000606483015273e592427a0aece92de3edee1f18e0157c058615646024830152602082608481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa918215610474578392610443575b5061022b6040516101fc60408261049e565b600d81527f5573696e67204e46504d20617400000000000000000000000000000000000000602082015261053f565b61023481610619565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561043f576040517f7fb5297f000000000000000000000000000000000000000000000000000000008152838160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561043457610420575b5060405191612ff0918284019284841067ffffffffffffffff8511176103f357849273ffffffffffffffffffffffffffffffffffffffff604095938193610672873916835216602082015203019082f080156103e657737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156103d757816040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103db576103c2575b506103bf9173ffffffffffffffffffffffffffffffffffffffff91506103b960405161038a60408261049e565b601581527f4465706c6f796564204d6972726f72456e7620746f0000000000000000000000602082015261053f565b16610619565b80f35b816103cc9161049e565b6103d757813861035d565b5080fd5b6040513d84823e3d90fd5b50604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8361042d9194929461049e565b913861029d565b6040513d86823e3d90fd5b8280fd5b61046691925060203d60201161046d575b61045e818361049e565b81019061050e565b90386101ea565b503d610454565b6040513d85823e3d90fd5b610498915060203d60201161046d5761045e818361049e565b38610149565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176104df57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9081602091031261053a575173ffffffffffffffffffffffffffffffffffffffff8116810361053a5790565b600080fd5b604051907f41304fac0000000000000000000000000000000000000000000000000000000060208301526020602483015280519081604484015260005b828110610603575050816105ec6064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86600085819a99829a0101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261049e565b6020815191016a636f6e736f6c652e6c6f675afa50565b806020809284010151606482870101520161057c565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc2000000000000000000000000000000000000000000000000000000006020840152166024820152602481526105ec60448261049e56fe60c034609557601f612ff038819003918201601f19168301916001600160401b03831184841017609a5780849260409485528339810103126095578051906001600160a01b038216820360955760200151906001600160a01b038216820360955760805260a052604051612f3f90816100b182396080518181816108e90152610ccc015260a051818181610495015261179b0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081637303e913146108a0575080639949e04f146107a4578063a4063dbc1461071d578063b4a14b15146104b9578063c31c9c071461044a578063c5abc9cd14610315578063e4102ad214610196578063e48603391461011b5763fb218b231461008257600080fd5b346101165760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576100b9610986565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610116576040916100e691611708565b610114825180926020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565bf35b600080fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610167610986565b166000526000602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff811161011657366023820112156101165780600401356101f081610a3f565b916101fe6040519384610945565b818352602460e06020850193028201019036821161011657602401915b81831061027e578361022d815161164a565b9060005b815181101561026c578061025061024a600193856116c5565b51610b02565b61025a82866116c5565b5261026581856116c5565b5001610231565b6040518061027a8582610a57565b0390f35b600060e08436031261031257506040519061029882610929565b6102a1846109a9565b82526102af602085016109a9565b60208301526102c0604085016109a9565b604083015260608401359062ffffff821682036101165782602092606060e09501526102ee608087016109a9565b608082015260a086013560a082015260c086013560c082015281520192019161021b565b80fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff8111610116573660238201121561011657806004013561036f81610a3f565b9161037d6040519384610945565b8183526024602084019260061b8201019036821161011657602401915b81831061040b57836103ac815161164a565b9060005b815181101561026c57806103ef6103c9600193856116c5565b5173ffffffffffffffffffffffffffffffffffffffff6020818351169201511690611708565b6103f982866116c5565b5261040481856116c5565b50016103b0565b60408336031261011657602060409182516104258161090d565b61042e866109a9565b815261043b8387016109a9565b8382015281520192019161039a565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff81116101165760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc823603011261011657604051906080820182811067ffffffffffffffff8211176106ee57604052610550816004016109a9565b8252602481013567ffffffffffffffff81116101165761057690600436918401016109ca565b9060208301918252604481013567ffffffffffffffff8111610116576105a4606491600436918501016109ca565b9160408501928352013560ff81168103610116576060840190815273ffffffffffffffffffffffffffffffffffffffff604060008287511681528060205220541692831561060e575b60208473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b519151905160405193509091610f088085019260ff169167ffffffffffffffff8411868510176106ee5785946106576106659260409461200289396060875260608701906115eb565b9085820360208701526115eb565b92015203906000f09081156106e2578173ffffffffffffffffffffffffffffffffffffffff6020939251166000526000835273ffffffffffffffffffffffffffffffffffffffff604060002091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558280806105ed565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610769610986565b1660005260016020526040806000205460ff82519173ffffffffffffffffffffffffffffffffffffffff8116835260a01c1615156020820152f35b346101165760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576040516107df81610929565b60043573ffffffffffffffffffffffffffffffffffffffff8116810361011657815260243573ffffffffffffffffffffffffffffffffffffffff8116810361011657602082015260443573ffffffffffffffffffffffffffffffffffffffff8116810361011657604082015260643562ffffff8116810361011657606082015260843573ffffffffffffffffffffffffffffffffffffffff8116810361011657816100e6916080604094015260a43560a082015260c43560c0820152610b02565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6040810190811067ffffffffffffffff8211176106ee57604052565b60e0810190811067ffffffffffffffff8211176106ee57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106ee57604052565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b81601f820112156101165780359067ffffffffffffffff82116106ee5760405192610a1d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610945565b8284526020838301011161011657816000926020809301838601378301015290565b67ffffffffffffffff81116106ee5760051b60200190565b602060408183019282815284518094520192019060005b818110610a7b5750505090565b9091926020604082610ab260019488516020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565b019401929101610a6e565b60405190610aca8261090d565b60006020838281520152565b90816020910312610116575173ffffffffffffffffffffffffffffffffffffffff811681036101165790565b90610b0b610abd565b50815173ffffffffffffffffffffffffffffffffffffffff6000911681526001602052604081209260405193610b408561090d565b549360ff73ffffffffffffffffffffffffffffffffffffffff86169586835260a01c16151560208201529315610b74575050565b9190925073ffffffffffffffffffffffffffffffffffffffff60208301511683528260205273ffffffffffffffffffffffffffffffffffffffff6040842054169273ffffffffffffffffffffffffffffffffffffffff60408401511681528060205273ffffffffffffffffffffffffffffffffffffffff60408220541680851561158d57801561152f5760a0850151621b13d1810290808204621b13d1149015171561150257606490049060c0860151621b13d1810290808204621b13d114901517156114d55760649004968773ffffffffffffffffffffffffffffffffffffffff608089015116908383119586611461575b505060608801516040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152938316602485015262ffffff166044840152811660648301527f0000000000000000000000000000000000000000000000000000000000000000169060208160848188865af1908115611456579073ffffffffffffffffffffffffffffffffffffffff918691611437575b50169260405190610d2c8261090d565b8482526020820190815273ffffffffffffffffffffffffffffffffffffffff829851168652600160205273ffffffffffffffffffffffffffffffffffffffff8060408820935116167fffffffffffffffffffffffff00000000000000000000000000000000000000008354161782555115157fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b1691161790557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276e092620d89206040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa80156106e25773ffffffffffffffffffffffffffffffffffffffff91600091611418575b5016986040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa80156106e25773ffffffffffffffffffffffffffffffffffffffff916000916113e9575b5016958a3b15610116576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018790526000818d8183816044810103925af180156106e2576113d2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018790526020818d818c816044810103925af180156112e75761139b575b50863b15611397576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838c5af180156112e757908991611382575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018390526020816044818c8c5af180156112e75761134b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481885afa9182156112e75789926112fa575b508161107060049695949361107693611f49565b93611f49565b90339333156112f2575b602090604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156112e75789956112b6575b506040519661016088019c8d67ffffffffffffffff8a8210911117611289578a9b9c9d60409b9a9b52885260208801998a52604088019562ffffff168652606088019360020b8452608088019260020b835260a0880190815260c0880191825260e08801928984526101008901948a86526101208a019673ffffffffffffffffffffffffffffffffffffffff1687526101408a01974289526040519c8d9b7f88316456000000000000000000000000000000000000000000000000000000008d525173ffffffffffffffffffffffffffffffffffffffff1660048d01525173ffffffffffffffffffffffffffffffffffffffff1660248c01525162ffffff1660448b01525160020b60648a01525160020b60848901525160a48801525160c48701525160e4860152516101048501525173ffffffffffffffffffffffffffffffffffffffff1661012484015251610144830152815a9361016492608095f1801561127e57611229575050565b6080813d608011611276575b8161124260809383610945565b81010312611272578051916020820151906fffffffffffffffffffffffffffffffff821682036103125750505050565b5080fd5b3d9150611235565b6040513d84823e3d90fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6112d991955060203d6020116112e0575b6112d18183610945565b810190611f2e565b93386110bd565b503d6112c7565b6040513d8b823e3d90fd5b309450611080565b9091506020813d602011611343575b8161131660209383610945565b8101031261133f5760049493929161107061133361107693611f04565b9394959650509061105c565b8880fd5b3d9150611309565b6020813d60201161137a575b8161136460209383610945565b8101031261133f5761137590611f21565b61101d565b3d9150611357565b8161138c91610945565b611397578738610fbd565b8780fd5b6020813d6020116113ca575b816113b460209383610945565b8101031261133f576113c590611f21565b610f6b565b3d91506113a7565b6113e0919850600090610945565b60009638610f07565b61140b915060203d602011611411575b6114038183610945565b810190610ad6565b38610eb0565b503d6113f9565b611431915060203d602011611411576114038183610945565b38610e5a565b611450915060203d602011611411576114038183610945565b38610d1c565b6040513d87823e3d90fd5b9499509391925080156114a85773ffffffffffffffffffffffffffffffffffffffff8091780100000000000000000000000000000000000000000000000004169038610c67565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e31206e6f74206d6972726f726564000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e30206e6f74206d6972726f726564000000000000000000000000006044820152fd5b919082519283825260005b8481106116355750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016115f6565b9061165482610a3f565b6116616040519182610945565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061168f8294610a3f565b019060005b8281106116a057505050565b6020906040516116af8161090d565b6000815260008382015282828501015201611694565b80518210156116d95760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff90929192611729610abd565b501660005260016020526040600020604051906117458261090d565b549273ffffffffffffffffffffffffffffffffffffffff84169384835260ff602084019160a01c161515815282941561184457516117c1575b73ffffffffffffffffffffffffffffffffffffffff6117bf9251167f0000000000000000000000000000000000000000000000000000000000000000611945565b565b73ffffffffffffffffffffffffffffffffffffffff16908115611815579078010000000000000000000000000000000000000000000000000473ffffffffffffffffffffffffffffffffffffffff1661177e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f74206d6972726f72656400000000000000000000000000000000000000006044820152fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff8313176118dc57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008312176118dc57565b92919073ffffffffffffffffffffffffffffffffffffffff60009116604051927f3850c7bd00000000000000000000000000000000000000000000000000000000845260e084600481855afa938415611ef9578394611e3b575b5073ffffffffffffffffffffffffffffffffffffffff9384169316838114611e33576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115611d67579073ffffffffffffffffffffffffffffffffffffffff918591611e14575b50166040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156114565773ffffffffffffffffffffffffffffffffffffffff929183918791611df5575b501683871115611ded578382975b1015611de55750945b1695863b15611de1576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526c1000000000000000000000000060248201528481604481838c5af1801561145657611db9575b5073ffffffffffffffffffffffffffffffffffffffff16916040517f095ea7b30000000000000000000000000000000000000000000000000000000081528360048201526c100000000000000000000000006024820152602081604481888c5af1801561145657611d72575b5090602060049392604051948580927fddca3f430000000000000000000000000000000000000000000000000000000082525afa928315611d67578493611d46575b506040519261010084019784891067ffffffffffffffff8a1117611d1957859697986040528452602084019673ffffffffffffffffffffffffffffffffffffffff168752604084019062ffffff168152606084013381526080850142815260a08601916c10000000000000000000000000835260c087019388855260e088019586526040519a8b987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e4830152815a9361010492602095f18015611d0c57611cdf575050565b6020823d602011611d04575b81611cf860209383610945565b81010312610312575050565b3d9150611ceb565b50604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b611d6091935060203d6020116112e0576112d18183610945565b9138611b8e565b6040513d86823e3d90fd5b6020813d602011611db1575b81611d8b60209383610945565b81010312611dad576004939291611da3602092611f21565b5091929350611b4c565b8480fd5b3d9150611d7e565b93611dda8173ffffffffffffffffffffffffffffffffffffffff9396610945565b9390611ae0565b8380fd5b905094611a84565b838197611a7b565b611e0e915060203d602011611411576114038183610945565b38611a6d565b611e2d915060203d602011611411576114038183610945565b38611a15565b505050509050565b90935060e0813d60e011611ef1575b81611e5760e09383610945565b81010312611eed5780519073ffffffffffffffffffffffffffffffffffffffff82168203611de157611e8b60208201611f04565b50611e9860408201611f12565b50611ea560608201611f12565b50611eb260808201611f12565b5060a081015160ff811603611de15773ffffffffffffffffffffffffffffffffffffffff91611ee460c0849301611f21565b5094915061199f565b8280fd5b3d9150611e4a565b6040513d85823e3d90fd5b51908160020b820361011657565b519061ffff8216820361011657565b5190811515820361011657565b90816020910312610116575162ffffff811681036101165790565b8060020b918060020b80156118155760008185079412600014611fca578360020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146118dc57600290600003910560020b9060020b1315600014611fb7575090611fb49161190b565b90565b611fb492611fc4916118a2565b9061190b565b6002906000949394500560020b8260020b13600014611ff757611fb49291611ff19161190b565b906118a2565b50611fb49161190b56fe60806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a2646970667358221220e7779024c041f65e27f0188b8bd3dbdbeeeab3b97715464de1553712698e207c64736f6c634300081a0033a264697066735822122016fd76d4a97460a11abd6d892c1bf1d39a2a36ee94d9a3d58671aa12338c5dbb64736f6c634300081a0033","sourceMap":"186:550:55:-:0;;;;;;;;;;3166:4:2;186:550:55;;;3166:4:2;186:550:55;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346103d757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103d7577f561fe54000000000000000000000000000000000000000000000000000000000815260406004820152600460448201527f4e46504d00000000000000000000000000000000000000000000000000000000606482015273c36442b4a4522e871399cd717abdd847ab11fe886024820152602081608481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156103db57829161047f575b50604051907f561fe54000000000000000000000000000000000000000000000000000000000825260406004830152600b60448301527f535741505f524f55544552000000000000000000000000000000000000000000606483015273e592427a0aece92de3edee1f18e0157c058615646024830152602082608481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa918215610474578392610443575b5061022b6040516101fc60408261049e565b600d81527f5573696e67204e46504d20617400000000000000000000000000000000000000602082015261053f565b61023481610619565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561043f576040517f7fb5297f000000000000000000000000000000000000000000000000000000008152838160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561043457610420575b5060405191612ff0918284019284841067ffffffffffffffff8511176103f357849273ffffffffffffffffffffffffffffffffffffffff604095938193610672873916835216602082015203019082f080156103e657737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156103d757816040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103db576103c2575b506103bf9173ffffffffffffffffffffffffffffffffffffffff91506103b960405161038a60408261049e565b601581527f4465706c6f796564204d6972726f72456e7620746f0000000000000000000000602082015261053f565b16610619565b80f35b816103cc9161049e565b6103d757813861035d565b5080fd5b6040513d84823e3d90fd5b50604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8361042d9194929461049e565b913861029d565b6040513d86823e3d90fd5b8280fd5b61046691925060203d60201161046d575b61045e818361049e565b81019061050e565b90386101ea565b503d610454565b6040513d85823e3d90fd5b610498915060203d60201161046d5761045e818361049e565b38610149565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176104df57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9081602091031261053a575173ffffffffffffffffffffffffffffffffffffffff8116810361053a5790565b600080fd5b604051907f41304fac0000000000000000000000000000000000000000000000000000000060208301526020602483015280519081604484015260005b828110610603575050816105ec6064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86600085819a99829a0101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261049e565b6020815191016a636f6e736f6c652e6c6f675afa50565b806020809284010151606482870101520161057c565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc2000000000000000000000000000000000000000000000000000000006020840152166024820152602481526105ec60448261049e56fe60c034609557601f612ff038819003918201601f19168301916001600160401b03831184841017609a5780849260409485528339810103126095578051906001600160a01b038216820360955760200151906001600160a01b038216820360955760805260a052604051612f3f90816100b182396080518181816108e90152610ccc015260a051818181610495015261179b0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081637303e913146108a0575080639949e04f146107a4578063a4063dbc1461071d578063b4a14b15146104b9578063c31c9c071461044a578063c5abc9cd14610315578063e4102ad214610196578063e48603391461011b5763fb218b231461008257600080fd5b346101165760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576100b9610986565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610116576040916100e691611708565b610114825180926020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565bf35b600080fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610167610986565b166000526000602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff811161011657366023820112156101165780600401356101f081610a3f565b916101fe6040519384610945565b818352602460e06020850193028201019036821161011657602401915b81831061027e578361022d815161164a565b9060005b815181101561026c578061025061024a600193856116c5565b51610b02565b61025a82866116c5565b5261026581856116c5565b5001610231565b6040518061027a8582610a57565b0390f35b600060e08436031261031257506040519061029882610929565b6102a1846109a9565b82526102af602085016109a9565b60208301526102c0604085016109a9565b604083015260608401359062ffffff821682036101165782602092606060e09501526102ee608087016109a9565b608082015260a086013560a082015260c086013560c082015281520192019161021b565b80fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff8111610116573660238201121561011657806004013561036f81610a3f565b9161037d6040519384610945565b8183526024602084019260061b8201019036821161011657602401915b81831061040b57836103ac815161164a565b9060005b815181101561026c57806103ef6103c9600193856116c5565b5173ffffffffffffffffffffffffffffffffffffffff6020818351169201511690611708565b6103f982866116c5565b5261040481856116c5565b50016103b0565b60408336031261011657602060409182516104258161090d565b61042e866109a9565b815261043b8387016109a9565b8382015281520192019161039a565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff81116101165760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc823603011261011657604051906080820182811067ffffffffffffffff8211176106ee57604052610550816004016109a9565b8252602481013567ffffffffffffffff81116101165761057690600436918401016109ca565b9060208301918252604481013567ffffffffffffffff8111610116576105a4606491600436918501016109ca565b9160408501928352013560ff81168103610116576060840190815273ffffffffffffffffffffffffffffffffffffffff604060008287511681528060205220541692831561060e575b60208473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b519151905160405193509091610f088085019260ff169167ffffffffffffffff8411868510176106ee5785946106576106659260409461200289396060875260608701906115eb565b9085820360208701526115eb565b92015203906000f09081156106e2578173ffffffffffffffffffffffffffffffffffffffff6020939251166000526000835273ffffffffffffffffffffffffffffffffffffffff604060002091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558280806105ed565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610769610986565b1660005260016020526040806000205460ff82519173ffffffffffffffffffffffffffffffffffffffff8116835260a01c1615156020820152f35b346101165760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576040516107df81610929565b60043573ffffffffffffffffffffffffffffffffffffffff8116810361011657815260243573ffffffffffffffffffffffffffffffffffffffff8116810361011657602082015260443573ffffffffffffffffffffffffffffffffffffffff8116810361011657604082015260643562ffffff8116810361011657606082015260843573ffffffffffffffffffffffffffffffffffffffff8116810361011657816100e6916080604094015260a43560a082015260c43560c0820152610b02565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6040810190811067ffffffffffffffff8211176106ee57604052565b60e0810190811067ffffffffffffffff8211176106ee57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106ee57604052565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b81601f820112156101165780359067ffffffffffffffff82116106ee5760405192610a1d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610945565b8284526020838301011161011657816000926020809301838601378301015290565b67ffffffffffffffff81116106ee5760051b60200190565b602060408183019282815284518094520192019060005b818110610a7b5750505090565b9091926020604082610ab260019488516020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565b019401929101610a6e565b60405190610aca8261090d565b60006020838281520152565b90816020910312610116575173ffffffffffffffffffffffffffffffffffffffff811681036101165790565b90610b0b610abd565b50815173ffffffffffffffffffffffffffffffffffffffff6000911681526001602052604081209260405193610b408561090d565b549360ff73ffffffffffffffffffffffffffffffffffffffff86169586835260a01c16151560208201529315610b74575050565b9190925073ffffffffffffffffffffffffffffffffffffffff60208301511683528260205273ffffffffffffffffffffffffffffffffffffffff6040842054169273ffffffffffffffffffffffffffffffffffffffff60408401511681528060205273ffffffffffffffffffffffffffffffffffffffff60408220541680851561158d57801561152f5760a0850151621b13d1810290808204621b13d1149015171561150257606490049060c0860151621b13d1810290808204621b13d114901517156114d55760649004968773ffffffffffffffffffffffffffffffffffffffff608089015116908383119586611461575b505060608801516040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152938316602485015262ffffff166044840152811660648301527f0000000000000000000000000000000000000000000000000000000000000000169060208160848188865af1908115611456579073ffffffffffffffffffffffffffffffffffffffff918691611437575b50169260405190610d2c8261090d565b8482526020820190815273ffffffffffffffffffffffffffffffffffffffff829851168652600160205273ffffffffffffffffffffffffffffffffffffffff8060408820935116167fffffffffffffffffffffffff00000000000000000000000000000000000000008354161782555115157fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b1691161790557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276e092620d89206040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa80156106e25773ffffffffffffffffffffffffffffffffffffffff91600091611418575b5016986040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa80156106e25773ffffffffffffffffffffffffffffffffffffffff916000916113e9575b5016958a3b15610116576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018790526000818d8183816044810103925af180156106e2576113d2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018790526020818d818c816044810103925af180156112e75761139b575b50863b15611397576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838c5af180156112e757908991611382575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018390526020816044818c8c5af180156112e75761134b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481885afa9182156112e75789926112fa575b508161107060049695949361107693611f49565b93611f49565b90339333156112f2575b602090604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156112e75789956112b6575b506040519661016088019c8d67ffffffffffffffff8a8210911117611289578a9b9c9d60409b9a9b52885260208801998a52604088019562ffffff168652606088019360020b8452608088019260020b835260a0880190815260c0880191825260e08801928984526101008901948a86526101208a019673ffffffffffffffffffffffffffffffffffffffff1687526101408a01974289526040519c8d9b7f88316456000000000000000000000000000000000000000000000000000000008d525173ffffffffffffffffffffffffffffffffffffffff1660048d01525173ffffffffffffffffffffffffffffffffffffffff1660248c01525162ffffff1660448b01525160020b60648a01525160020b60848901525160a48801525160c48701525160e4860152516101048501525173ffffffffffffffffffffffffffffffffffffffff1661012484015251610144830152815a9361016492608095f1801561127e57611229575050565b6080813d608011611276575b8161124260809383610945565b81010312611272578051916020820151906fffffffffffffffffffffffffffffffff821682036103125750505050565b5080fd5b3d9150611235565b6040513d84823e3d90fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6112d991955060203d6020116112e0575b6112d18183610945565b810190611f2e565b93386110bd565b503d6112c7565b6040513d8b823e3d90fd5b309450611080565b9091506020813d602011611343575b8161131660209383610945565b8101031261133f5760049493929161107061133361107693611f04565b9394959650509061105c565b8880fd5b3d9150611309565b6020813d60201161137a575b8161136460209383610945565b8101031261133f5761137590611f21565b61101d565b3d9150611357565b8161138c91610945565b611397578738610fbd565b8780fd5b6020813d6020116113ca575b816113b460209383610945565b8101031261133f576113c590611f21565b610f6b565b3d91506113a7565b6113e0919850600090610945565b60009638610f07565b61140b915060203d602011611411575b6114038183610945565b810190610ad6565b38610eb0565b503d6113f9565b611431915060203d602011611411576114038183610945565b38610e5a565b611450915060203d602011611411576114038183610945565b38610d1c565b6040513d87823e3d90fd5b9499509391925080156114a85773ffffffffffffffffffffffffffffffffffffffff8091780100000000000000000000000000000000000000000000000004169038610c67565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e31206e6f74206d6972726f726564000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e30206e6f74206d6972726f726564000000000000000000000000006044820152fd5b919082519283825260005b8481106116355750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016115f6565b9061165482610a3f565b6116616040519182610945565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061168f8294610a3f565b019060005b8281106116a057505050565b6020906040516116af8161090d565b6000815260008382015282828501015201611694565b80518210156116d95760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff90929192611729610abd565b501660005260016020526040600020604051906117458261090d565b549273ffffffffffffffffffffffffffffffffffffffff84169384835260ff602084019160a01c161515815282941561184457516117c1575b73ffffffffffffffffffffffffffffffffffffffff6117bf9251167f0000000000000000000000000000000000000000000000000000000000000000611945565b565b73ffffffffffffffffffffffffffffffffffffffff16908115611815579078010000000000000000000000000000000000000000000000000473ffffffffffffffffffffffffffffffffffffffff1661177e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f74206d6972726f72656400000000000000000000000000000000000000006044820152fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff8313176118dc57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008312176118dc57565b92919073ffffffffffffffffffffffffffffffffffffffff60009116604051927f3850c7bd00000000000000000000000000000000000000000000000000000000845260e084600481855afa938415611ef9578394611e3b575b5073ffffffffffffffffffffffffffffffffffffffff9384169316838114611e33576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115611d67579073ffffffffffffffffffffffffffffffffffffffff918591611e14575b50166040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156114565773ffffffffffffffffffffffffffffffffffffffff929183918791611df5575b501683871115611ded578382975b1015611de55750945b1695863b15611de1576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526c1000000000000000000000000060248201528481604481838c5af1801561145657611db9575b5073ffffffffffffffffffffffffffffffffffffffff16916040517f095ea7b30000000000000000000000000000000000000000000000000000000081528360048201526c100000000000000000000000006024820152602081604481888c5af1801561145657611d72575b5090602060049392604051948580927fddca3f430000000000000000000000000000000000000000000000000000000082525afa928315611d67578493611d46575b506040519261010084019784891067ffffffffffffffff8a1117611d1957859697986040528452602084019673ffffffffffffffffffffffffffffffffffffffff168752604084019062ffffff168152606084013381526080850142815260a08601916c10000000000000000000000000835260c087019388855260e088019586526040519a8b987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e4830152815a9361010492602095f18015611d0c57611cdf575050565b6020823d602011611d04575b81611cf860209383610945565b81010312610312575050565b3d9150611ceb565b50604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b611d6091935060203d6020116112e0576112d18183610945565b9138611b8e565b6040513d86823e3d90fd5b6020813d602011611db1575b81611d8b60209383610945565b81010312611dad576004939291611da3602092611f21565b5091929350611b4c565b8480fd5b3d9150611d7e565b93611dda8173ffffffffffffffffffffffffffffffffffffffff9396610945565b9390611ae0565b8380fd5b905094611a84565b838197611a7b565b611e0e915060203d602011611411576114038183610945565b38611a6d565b611e2d915060203d602011611411576114038183610945565b38611a15565b505050509050565b90935060e0813d60e011611ef1575b81611e5760e09383610945565b81010312611eed5780519073ffffffffffffffffffffffffffffffffffffffff82168203611de157611e8b60208201611f04565b50611e9860408201611f12565b50611ea560608201611f12565b50611eb260808201611f12565b5060a081015160ff811603611de15773ffffffffffffffffffffffffffffffffffffffff91611ee460c0849301611f21565b5094915061199f565b8280fd5b3d9150611e4a565b6040513d85823e3d90fd5b51908160020b820361011657565b519061ffff8216820361011657565b5190811515820361011657565b90816020910312610116575162ffffff811681036101165790565b8060020b918060020b80156118155760008185079412600014611fca578360020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146118dc57600290600003910560020b9060020b1315600014611fb7575090611fb49161190b565b90565b611fb492611fc4916118a2565b9061190b565b6002906000949394500560020b8260020b13600014611ff757611fb49291611ff19161190b565b906118a2565b50611fb49161190b56fe60806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a2646970667358221220e7779024c041f65e27f0188b8bd3dbdbeeeab3b97715464de1553712698e207c64736f6c634300081a0033a264697066735822122016fd76d4a97460a11abd6d892c1bf1d39a2a36ee94d9a3d58671aa12338c5dbb64736f6c634300081a0033","sourceMap":"186:550:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:28:1;186:550:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;1278:71:65;273:49:55;;186:550;;273:49;;1278:71:65;186:550:55;1278:71:65;;;;;;;;;1306:42;1278:71;;;;;273:49:55;;;186:550;273:49;;;;;;;;;;;186:550;;;;353:62;1278:71:65;353:62:55;;186:550;;353:62;;1166:55:65;;1278:71;1166:55;;1278:71;1166:55;1278:71;;;1166:55;1178:42;1278:71;1166:55;;1278:71;;353:62:55;273:49;353:62;186:550;353:62;;;;;;;;;;;186:550;1166:55:65;425:29:55;186:550;;1166:55:65;186:550:55;1166:55:65;;:::i;:::-;;;;;1278:71;1166:55;;;425:29:55;:::i;:::-;477:4;;;:::i;:::-;186:550;492:19;;;;186:550;;1278:71:65;492:19:55;;;;186:550;492:19;;186:550;492:19;;;;;;;;186:550;;;;540:73;;;;;;;;;;1166:55:65;540:73:55;;;;;;;186:550;;540:73;;;;;;;186:550;1166:55:65;;186:550:55;1278:71:65;1166:55;;;540:73:55;;;;;;;;;186:550;623:18;;;;186:550;;;1278:71:65;623:18:55;;;;186:550;623:18;;186:550;623:18;;;;;;;;186:550;1166:55:65;711:15:55;1166:55:65;186:550:55;1166:55:65;;651:37:55;186:550;;1166:55:65;186:550:55;1166:55:65;;:::i;:::-;;;;;1278:71;1166:55;;;651:37:55;:::i;:::-;186:550;711:15;:::i;:::-;186:550;;623:18;;;;;:::i;:::-;186:550;;623:18;;;;186:550;;;;623:18;186:550;;1278:71:65;186:550:55;;1278:71:65;;;;540:73:55;186:550;;;1278:71:65;;;;;;;;540:73:55;1278:71:65;;;;;;186:550:55;1278:71:65;;492:19:55;;;;;;;;:::i;:::-;;;;;;186:550;;1278:71:65;186:550:55;;1278:71:65;;;;492:19:55;186:550;;;353:62;;;;;1278:71:65;353:62:55;1278:71:65;353:62:55;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;186:550;;1278:71:65;186:550:55;;1278:71:65;;;;273:49:55;;;;1278:71:65;273:49:55;1278:71:65;273:49:55;;;;;;;:::i;:::-;;;;1278:71:65;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1278:71:65;;;;;-1:-1:-1;1278:71:65;;;;;;;;;;;186:550:55;;;1278:71:65;;;;;:::o;:::-;-1:-1:-1;1278:71:65;;6598:121:11;186:550:55;;6669:42:11;;;;;;;;;;186:550:55;;;;;;;;1278:71:65;-1:-1:-1;186:550:55;;;;;;;;;6669:42:11;1278:71:65;186:550:55;1278:71:65;;186:550:55;-1:-1:-1;186:550:55;;;;;;;;;1278:71:65;;186:550:55;;6669:42:11;;1278:71:65;6669:42:11;;;;;;:::i;:::-;1222:159;186:550:55;;1222:159:11;;591:42;1222:159;;;6598:121::o;186:550:55:-;;6669:42:11;186:550:55;;;;;;1278:71:65;186:550:55;;;;;;;;6841:116:11;1222:159;6841:116;;186:550:55;;;6906:43:11;;;;;;186:550:55;6906:43:11;;;1278:71:65;6906:43:11;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":{\"script/DeployMirror.sol\":\"DeployMirror\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"script/DeployMirror.sol\":{\"keccak256\":\"0x8b0f62cbd0a533efe3f50e76f252d9c1d57a40a989a00a6e9a3dbbaf05fc7156\",\"urls\":[\"bzz-raw://21fa566fbcb39d756d99e113221241ccd65fb58e1374f55b36299d89c8c895e3\",\"dweb:/ipfs/QmX2dyzutKiJ59GwwSHHg9xJ6R2rVs1SGpvArjy9uSQQdd\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/more/MockERC20.sol\":{\"keccak256\":\"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca\",\"urls\":[\"bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a\",\"dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp\"]},\"test/MirrorEnv.sol\":{\"keccak256\":\"0xb981f398f6b133b561dd865f56327fea8571e5bc0faa5b7ad90c40879c94ab17\",\"urls\":[\"bzz-raw://a1d582d66785bd17273c626c9251a4e03dc0743628912eeba64c375514ae951d\",\"dweb:/ipfs/QmVfWLMvjozx5B35Ei5TcYdKFfesTsEzGAz2FbBx3uXwjW\"]},\"test/MockUtil.sol\":{\"keccak256\":\"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694\",\"urls\":[\"bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f\",\"dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/DeployMirror.sol":"DeployMirror"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"script/DeployMirror.sol":{"keccak256":"0x8b0f62cbd0a533efe3f50e76f252d9c1d57a40a989a00a6e9a3dbbaf05fc7156","urls":["bzz-raw://21fa566fbcb39d756d99e113221241ccd65fb58e1374f55b36299d89c8c895e3","dweb:/ipfs/QmX2dyzutKiJ59GwwSHHg9xJ6R2rVs1SGpvArjy9uSQQdd"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/more/MockERC20.sol":{"keccak256":"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca","urls":["bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a","dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp"],"license":null},"test/MirrorEnv.sol":{"keccak256":"0xb981f398f6b133b561dd865f56327fea8571e5bc0faa5b7ad90c40879c94ab17","urls":["bzz-raw://a1d582d66785bd17273c626c9251a4e03dc0743628912eeba64c375514ae951d","dweb:/ipfs/QmVfWLMvjozx5B35Ei5TcYdKFfesTsEzGAz2FbBx3uXwjW"],"license":null},"test/MockUtil.sol":{"keccak256":"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694","urls":["bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f","dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi"],"license":null}},"version":1},"id":55} \ No newline at end of file diff --git a/deployment/arb1/out/DeployMock.sol/DeployMock.json b/deployment/arb1/out/DeployMock.sol/DeployMock.json deleted file mode 100644 index 6a46930..0000000 --- a/deployment/arb1/out/DeployMock.sol/DeployMock.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":"0x608080604052346026576201000162ff00ff19600c541617600c5561eaf6908161002c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346103c257817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156103c2577f7fb5297f00000000000000000000000000000000000000000000000000000000815281808260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103e6576103f3575b505060405161e64d8082019082821067ffffffffffffffff831117610380579082916104748339039082f080156103e65773ffffffffffffffffffffffffffffffffffffffff16803b156103c257816040517fc4b5da74000000000000000000000000000000000000000000000000000000008152818160048183875af180156103c6576103d1575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156103c257816040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c6576103ad575b50506040516040810181811067ffffffffffffffff82111761038057604052600781527f4d6f636b456e76000000000000000000000000000000000000000000000000006020820152604051907f41304fac00000000000000000000000000000000000000000000000000000000602083015260206024830152805190816044840152845b82811061036a5785600080878180896102ff6064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8e8c8582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610403565b6020815191016a636f6e736f6c652e6c6f675afa50604051907f2c2ecbc2000000000000000000000000000000000000000000000000000000006020830152602482015260248152610352604482610403565b6020815191016a636f6e736f6c652e6c6f675afa5080f35b806020809284010151606482870101520161028e565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b816103b791610403565b6103c2578138610209565b5080fd5b6040513d84823e3d90fd5b816103db91610403565b6103c257813861019d565b50604051903d90823e3d90fd5b6103fc91610403565b3881610114565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761044457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfe60808060405234603b57600180546001600160a01b03191673c36442b4a4522e871399cd717abdd847ab11fe8817905561e60c90816100418239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630dfe1681146111745750806316f0115b146111225780631bf6c21b146110d05780633420899b1461109657806341cca3b5146102925780634a09d3dd1461100b57806353486e2f14610fc857806367e368fc14610f845780638f7d7c5014610f2d578063a035b1fe14610e61578063a54a72b714610e0f578063c45a015514610dbe578063c4b5da7414610bf6578063c578d91d14610b9d578063d21220a714610b4b578063d6f1300214610454578063ddca3f4314610410578063df791e50146102c9578063e1c7392a14610292578063e3baf41a1461018e5763f09a40161461010857600080fd5b3461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043573ffffffffffffffffffffffffffffffffffffffff811681036101875760243573ffffffffffffffffffffffffffffffffffffffff811681036101835761018091611cb0565b80f35b8280fd5b5080fd5b80fd5b503461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576101c661120f565b818160020b13156101875760049060e073ffffffffffffffffffffffffffffffffffffffff60025416604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156102875761018092849261024b575b508061023c6102429284611bdd565b92611c46565b9060043561139d565b6102429192506102729060e03d60e011610280575b61026a8183611ac8565b810190611b33565b50505050509050919061022d565b503d610260565b6040513d85823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061122f565b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576103016111c4565b6103096111ec565b73ffffffffffffffffffffffffffffffffffffffff60025416906040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610405576103b3949392918673ffffffffffffffffffffffffffffffffffffffff92602098926103d6575b50501673ffffffffffffffffffffffffffffffffffffffff8416146000146103bb576401000276a4925b604435926126f0565b604051908152f35b73fffd8963efd1fc6a506488495d951d5263988d25926103aa565b6103f7919250883d8a116103fe575b6103ef8183611ac8565b810190611bb1565b9038610380565b503d6103e5565b6040513d87823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602062ffffff60025460a01c16604051908152f35b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043560243561049261121f565b606435918260020b8303610b475782919260ff60065460a01c169485600014610b4057825b8615610b385750945b610b1a575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa8015610b0f5773ffffffffffffffffffffffffffffffffffffffff918891610af0575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991610ac6575b501694863b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018590528881604481838c5af180156109d357610ab2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357610a7b575b50853b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905288908181604481838c5af1801561099757610a62575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d357610a2b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481895afa9182156109d35789926109e6575b50906107328161073893612f7a565b93612f7a565b92339333156109de575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d35789956109a2575b506040519761079089611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f18015610997578291838091819361091a575b50506fffffffffffffffffffffffffffffffff60809460405194855216602084015260408301526060820152f35b9350935050506080813d60801161098f575b8161093960809383611ac8565b81010312610187578051906020810151916fffffffffffffffffffffffffffffffff8316830361098b57604082015160609092015192935091906fffffffffffffffffffffffffffffffff60806108ec565b8380fd5b3d915061092c565b6040513d84823e3d90fd5b6109c591955060203d6020116109cc575b6109bd8183611ac8565b8101906126d5565b9338610782565b503d6109b3565b6040513d8b823e3d90fd5b309450610742565b91506020823d602011610a23575b81610a0160209383611ac8565b81010312610a1f57610732610a1861073893611b09565b9250610723565b8880fd5b3d91506109f4565b6020813d602011610a5a575b81610a4460209383611ac8565b81010312610a1f57610a5590611b26565b6106e4565b3d9150610a37565b81610a6c91611ac8565b610a77578738610686565b8780fd5b6020813d602011610aaa575b81610a9460209383611ac8565b81010312610a1f57610aa590611b26565b610635565b3d9150610a87565b88610abf91999299611ac8565b96386105d8565b610adf915060203d6020116103fe576103ef8183611ac8565b38610587565b6040513d8a823e3d90fd5b610b09915060203d6020116103fe576103ef8183611ac8565b38610532565b6040513d89823e3d90fd5b909250610b279150611c80565b90610b3182611c80565b90386104c5565b9050946104c0565b80926104b7565b8480fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b503461018b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd86111c4565b73ffffffffffffffffffffffffffffffffffffffff60025416612bee565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57604051611e7a8082019082821067ffffffffffffffff831117610d91579082916147898339039082f08015610d8457604051610c6081611a72565b60e381526028602082015260b5604082015260246060820152601e6080820152604051610c8c81611a72565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610cb983611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019083821067ffffffffffffffff831117610d575791610d2e9184936130368539612e59565b039083f080156109975773ffffffffffffffffffffffffffffffffffffffff6101809216611cb0565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57600460e073ffffffffffffffffffffffffffffffffffffffff60025416604051928380927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156109975760209291610f08575b5073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b610f21915060e03d60e0116102805761026a8183611ac8565b50505050505038610ee9565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576020610f66611a43565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602060ff60065460a01c166040519015158152f35b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061100361120f565b61024261121f565b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576110436111c4565b61104b6111ec565b6064359273ffffffffffffffffffffffffffffffffffffffff8416840361018b5760206103b38585856044359173ffffffffffffffffffffffffffffffffffffffff600254166126f0565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd8611a43565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b90503461018757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101875760209073ffffffffffffffffffffffffffffffffffffffff600554168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b602435908160020b82036111e757565b604435908160020b82036111e757565b604051611e7a80820182811067ffffffffffffffff82111761136e578291614789833903906000f080156113625760405161126981611a72565b600081526000602082015260006040820152600060608201526000608082015260405161129581611a72565b6000815260006020820152600060408201526000606082015260006080820152604051916112c283611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff84111761136e578392611336926130368539612e59565b03906000f080156113625773ffffffffffffffffffffffffffffffffffffffff6113609216611cb0565b565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9091600092670de0b6b3a7640000830292801593818104670de0b6b3a764000014851715611a165760011c93620f42408202918204620f42401417156119e95760011c82919260ff60065460a01c1694856000146119e257825b86156119da5750945b6119bc575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e575b501694863b15610a77576040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101859052888180604481015b0381838c5af180156109d35761196a575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357611933575b50853b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838b5af180156109d35790899161191e575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d3576118e7575b506040517fd0c93a7c000000000000000000000000000000000000000000000000000000008152602081600481895afa9081156109d35789916118a4575b506107328161167a93612f7a565b923393331561189c575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d357899561187b575b50604051976116d289611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f180156109975761182a575050565b6080813d608011611873575b8161184360809383611ac8565b81010312610187578051916020820151906fffffffffffffffffffffffffffffffff8216820361018b5750505050565b3d9150611836565b61189591955060203d6020116109cc576109bd8183611ac8565b93386116c4565b309450611684565b90506020813d6020116118df575b816118bf60209383611ac8565b81010312610a1f57906107326118d761167a93611b09565b91925061166c565b3d91506118b2565b6020813d602011611916575b8161190060209383611ac8565b81010312610a1f5761191190611b26565b61162e565b3d91506118f3565b8161192891611ac8565b610a775787386115d0565b6020813d602011611962575b8161194c60209383611ac8565b81010312610a1f5761195d90611b26565b61157e565b3d915061193f565b8861197791999299611ac8565b9638611521565b611997915060203d6020116103fe576103ef8183611ac8565b386114cb565b6119b6915060203d6020116103fe576103ef8183611ac8565b38611474565b9092506119c99150611c80565b906119d382611c80565b9038611405565b905094611400565b80926113f7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60065460a01c60ff1615611a64576e0f424000000000000000000000000090565b6910c6f7a0b5ed8d36b4c790565b60a0810190811067ffffffffffffffff82111761136e57604052565b610160810190811067ffffffffffffffff82111761136e57604052565b610100810190811067ffffffffffffffff82111761136e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761136e57604052565b51908160020b82036111e757565b519061ffff821682036111e757565b519081151582036111e757565b908160e09103126111e757805173ffffffffffffffffffffffffffffffffffffffff811681036111e75791611b6a60208301611b09565b91611b7760408201611b17565b91611b8460608301611b17565b91611b9160808201611b17565b9160a082015160ff811681036111e75760c0611bae919301611b26565b90565b908160209103126111e7575173ffffffffffffffffffffffffffffffffffffffff811681036111e75790565b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831217611c1757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff831317611c1757565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114611c175760000390565b9060009160405191615491918284019284841067ffffffffffffffff851117610d5757849273ffffffffffffffffffffffffffffffffffffffff60609593819361823e873916835216602082015284604082015203019082f08015610d845760405190611c3b908183019183831067ffffffffffffffff841117612567579173ffffffffffffffffffffffffffffffffffffffff849260609461660385393383521660208201526078604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781558080611e23611e55604051611dbc604082611ac8565b601481527f4d6f636b456e763a206d73672e73656e6465723a00000000000000000000000060208201526040519283917f319af333000000000000000000000000000000000000000000000000000000006020840152604060248401526064830190612594565b336044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50604051610f08908181019080821067ffffffffffffffff831117610d915760e08161d6cf938585833960608152601660608201527f4d6f636b20457468657265756d2048617264666f726b00000000000000000000608082015260a06020820152600360a08201527f4d4548000000000000000000000000000000000000000000000000000000000060c08201526012604082015203019084f080156102875773ffffffffffffffffffffffffffffffffffffffff611f939116807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355611f8e604051611f5f604082611ac8565b600381527f4d4548000000000000000000000000000000000000000000000000000000000060208201526125f3565b61267d565b604051918083019183831067ffffffffffffffff8411176125675791839160e093833960608152601060608201527f4a6f6b652043757272656e637920584400000000000000000000000000000000608082015260a06020820152600460a08201527f555358440000000000000000000000000000000000000000000000000000000060c08201526006604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060045416176004556120ad60405161207e604082611ac8565b600481527f555358440000000000000000000000000000000000000000000000000000000060208201526125f3565b6120b68161267d565b60207fffffffffffffffffffffff00000000000000000000000000000000000000000060847501f400000000000000000000000000000000000000007fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff6002541617938460025573ffffffffffffffffffffffffffffffffffffffff600354166006549073ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000084831160a01b169160ff837fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff86161760a01c1694856000146125605782815b1695867fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055560001461255957505b1694859216171760065561226e6040516121f4608082611ac8565b605381527f6966207468697320697320746865206c617374206c696e65206265666f726520868201527f6120726576657274207468656e206d616b65207375726520746f2072756e206660408201527f6f7267652077697468202d2d7270632d75726c0000000000000000000000000060608201526125f3565b8573ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff6122a5611a43565b62ffffff604051998a9889977f13ead5620000000000000000000000000000000000000000000000000000000089526004890152602488015260a01c1660448601521660648401525af1908115610997579073ffffffffffffffffffffffffffffffffffffffff91839161253a575b5016807fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255612380604051612351604082611ac8565b600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526125f3565b6123898161267d565b60065460a01c60ff16907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761890620d89e8808415612529576903c1fb96f3938f910000915b8515612518576903c1fb96f3938f910000955b6124d8575b506040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e57501694863b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810185905288818060448101611510565b9193505060020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146119e95784039161251283611c80565b386123e5565b6903c1fb96f3938f910000956123e0565b6903c1fb96f3938f910000916123cd565b612553915060203d6020116103fe576103ef8183611ac8565b38612314565b90506121d9565b82826121a4565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b919082519283825260005b8481106125de5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b8060208092840101518282860101520161259f565b600061263a61266682936040519283917f41304fac000000000000000000000000000000000000000000000000000000006020840152602060248401526044830190612594565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc200000000000000000000000000000000000000000000000000000000602084015216602482015260248152612666604482611ac8565b908160209103126111e7575162ffffff811681036111e75790565b9391929073ffffffffffffffffffffffffffffffffffffffff16906040517f095ea7b300000000000000000000000000000000000000000000000000000000815273e592427a0aece92de3edee1f18e0157c0586156460048201528160248201526020816044816000875af1801561136257612906575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa9384156113625773ffffffffffffffffffffffffffffffffffffffff80957f414bf38900000000000000000000000000000000000000000000000000000000976000916128e7575b506040519461280586611aab565b855281602086019316835262ffffff604086019116815262ffffff606086019133835283608088019542875260a089019788528160c08a019960008b528160e082019c168c526040519d8e52511660048d0152511660248b015251166044890152511660648701525160848601525160a48501525160c4840152511660e482015260208161010481600073e592427a0aece92de3edee1f18e0157c058615645af1908115611362576000916128b8575090565b90506020813d6020116128df575b816128d360209383611ac8565b810103126111e7575190565b3d91506128c6565b612900915060203d6020116109cc576109bd8183611ac8565b386127f7565b6020813d602011612950575b8161291f60209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612948602092611b26565b509550612767565b3d9150612912565b9173ffffffffffffffffffffffffffffffffffffffff8091959295169216906040517f095ea7b30000000000000000000000000000000000000000000000000000000081528260048201526c1000000000000000000000000060248201526020816044816000885af1801561136257612b9c575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa94851561136257600095612b7b575b5060405192612a3184611aab565b8352602083019373ffffffffffffffffffffffffffffffffffffffff168452604083019462ffffff168552606083013381526080840142815260a08501906c10000000000000000000000000825260c08601926000845260e087019473ffffffffffffffffffffffffffffffffffffffff16855260405198899889987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e48301525a92600061010492602095f1908115611362576000916128b8575090565b612b9591955060203d6020116109cc576109bd8183611ac8565b9338612a23565b6020813d602011612be6575b81612bb560209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612bde602092611b26565b5095506129cc565b3d9150612ba8565b919060009273ffffffffffffffffffffffffffffffffffffffff8116604051907f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa918215612e4e578692612e27575b5073ffffffffffffffffffffffffffffffffffffffff808516921691808314612e1e576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff6020916004938b91612e01575b501693604051928380927fd21220a70000000000000000000000000000000000000000000000000000000082525afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991612de2575b50169080841115612ddb5782935b1015612dd35750915b8573ffffffffffffffffffffffffffffffffffffffff8316803b156101875781906044604051809a81937f40c10f190000000000000000000000000000000000000000000000000000000083523060048401526c1000000000000000000000000060248401525af1968715610d8457612dc09697612dc3575b505073e592427a0aece92de3edee1f18e0157c05861564612958565b50565b81612dcd91611ac8565b38612da4565b905091612d2b565b8193612d22565b612dfb915060203d6020116103fe576103ef8183611ac8565b38612d14565b612e189150833d85116103fe576103ef8183611ac8565b38612cc2565b50505050509050565b612e4191925060e03d60e0116102805761026a8183611ac8565b5050505050509038612c48565b6040513d88823e3d90fd5b91909161024073ffffffffffffffffffffffffffffffffffffffff61014061026084019563ffffffff815116855263ffffffff602082015116602086015260ff604082015116604086015260ff6060820151166060860152612ef66080820151608087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b612f3c60a082015161012087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b8260c0820151166101c08601528260e0820151166101e086015282610100820151166102008601528261012082015116610220860152015116910152565b8060020b918060020b80156130065760008185079412600014612fcf576002612fa285611c80565b9105600290810b91900b13612fbc575090611bae91611bdd565b611bae92612fc991611c46565b90611bdd565b6002906000949394500560020b8260020b13600014612ffc57611bae9291612ff691611bdd565b90611c46565b50611bae91611bdd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a264697066735822122004adf304dfdb82ba37f8110667f9c6834327cefdd89f88c43499f7c5b66ebe0164736f6c634300081a0033a2646970667358221220b104f691366b94e7f44dc9ee1e1b7bfefbdc08d94b748ade85a15df01a8044c664736f6c634300081a0033","sourceMap":"123:264:56:-:0;;;;;;;;;;3166:4:2;123:264:56;;;3166:4:2;123:264:56;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346103c257817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103c257737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156103c2577f7fb5297f00000000000000000000000000000000000000000000000000000000815281808260048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103e6576103f3575b505060405161e64d8082019082821067ffffffffffffffff831117610380579082916104748339039082f080156103e65773ffffffffffffffffffffffffffffffffffffffff16803b156103c257816040517fc4b5da74000000000000000000000000000000000000000000000000000000008152818160048183875af180156103c6576103d1575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156103c257816040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c6576103ad575b50506040516040810181811067ffffffffffffffff82111761038057604052600781527f4d6f636b456e76000000000000000000000000000000000000000000000000006020820152604051907f41304fac00000000000000000000000000000000000000000000000000000000602083015260206024830152805190816044840152845b82811061036a5785600080878180896102ff6064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8e8c8582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610403565b6020815191016a636f6e736f6c652e6c6f675afa50604051907f2c2ecbc2000000000000000000000000000000000000000000000000000000006020830152602482015260248152610352604482610403565b6020815191016a636f6e736f6c652e6c6f675afa5080f35b806020809284010151606482870101520161028e565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b816103b791610403565b6103c2578138610209565b5080fd5b6040513d84823e3d90fd5b816103db91610403565b6103c257813861019d565b50604051903d90823e3d90fd5b6103fc91610403565b3881610114565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761044457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfe60808060405234603b57600180546001600160a01b03191673c36442b4a4522e871399cd717abdd847ab11fe8817905561e60c90816100418239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630dfe1681146111745750806316f0115b146111225780631bf6c21b146110d05780633420899b1461109657806341cca3b5146102925780634a09d3dd1461100b57806353486e2f14610fc857806367e368fc14610f845780638f7d7c5014610f2d578063a035b1fe14610e61578063a54a72b714610e0f578063c45a015514610dbe578063c4b5da7414610bf6578063c578d91d14610b9d578063d21220a714610b4b578063d6f1300214610454578063ddca3f4314610410578063df791e50146102c9578063e1c7392a14610292578063e3baf41a1461018e5763f09a40161461010857600080fd5b3461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043573ffffffffffffffffffffffffffffffffffffffff811681036101875760243573ffffffffffffffffffffffffffffffffffffffff811681036101835761018091611cb0565b80f35b8280fd5b5080fd5b80fd5b503461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576101c661120f565b818160020b13156101875760049060e073ffffffffffffffffffffffffffffffffffffffff60025416604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156102875761018092849261024b575b508061023c6102429284611bdd565b92611c46565b9060043561139d565b6102429192506102729060e03d60e011610280575b61026a8183611ac8565b810190611b33565b50505050509050919061022d565b503d610260565b6040513d85823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061122f565b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576103016111c4565b6103096111ec565b73ffffffffffffffffffffffffffffffffffffffff60025416906040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610405576103b3949392918673ffffffffffffffffffffffffffffffffffffffff92602098926103d6575b50501673ffffffffffffffffffffffffffffffffffffffff8416146000146103bb576401000276a4925b604435926126f0565b604051908152f35b73fffd8963efd1fc6a506488495d951d5263988d25926103aa565b6103f7919250883d8a116103fe575b6103ef8183611ac8565b810190611bb1565b9038610380565b503d6103e5565b6040513d87823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602062ffffff60025460a01c16604051908152f35b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043560243561049261121f565b606435918260020b8303610b475782919260ff60065460a01c169485600014610b4057825b8615610b385750945b610b1a575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa8015610b0f5773ffffffffffffffffffffffffffffffffffffffff918891610af0575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991610ac6575b501694863b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018590528881604481838c5af180156109d357610ab2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357610a7b575b50853b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905288908181604481838c5af1801561099757610a62575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d357610a2b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481895afa9182156109d35789926109e6575b50906107328161073893612f7a565b93612f7a565b92339333156109de575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d35789956109a2575b506040519761079089611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f18015610997578291838091819361091a575b50506fffffffffffffffffffffffffffffffff60809460405194855216602084015260408301526060820152f35b9350935050506080813d60801161098f575b8161093960809383611ac8565b81010312610187578051906020810151916fffffffffffffffffffffffffffffffff8316830361098b57604082015160609092015192935091906fffffffffffffffffffffffffffffffff60806108ec565b8380fd5b3d915061092c565b6040513d84823e3d90fd5b6109c591955060203d6020116109cc575b6109bd8183611ac8565b8101906126d5565b9338610782565b503d6109b3565b6040513d8b823e3d90fd5b309450610742565b91506020823d602011610a23575b81610a0160209383611ac8565b81010312610a1f57610732610a1861073893611b09565b9250610723565b8880fd5b3d91506109f4565b6020813d602011610a5a575b81610a4460209383611ac8565b81010312610a1f57610a5590611b26565b6106e4565b3d9150610a37565b81610a6c91611ac8565b610a77578738610686565b8780fd5b6020813d602011610aaa575b81610a9460209383611ac8565b81010312610a1f57610aa590611b26565b610635565b3d9150610a87565b88610abf91999299611ac8565b96386105d8565b610adf915060203d6020116103fe576103ef8183611ac8565b38610587565b6040513d8a823e3d90fd5b610b09915060203d6020116103fe576103ef8183611ac8565b38610532565b6040513d89823e3d90fd5b909250610b279150611c80565b90610b3182611c80565b90386104c5565b9050946104c0565b80926104b7565b8480fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b503461018b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd86111c4565b73ffffffffffffffffffffffffffffffffffffffff60025416612bee565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57604051611e7a8082019082821067ffffffffffffffff831117610d91579082916147898339039082f08015610d8457604051610c6081611a72565b60e381526028602082015260b5604082015260246060820152601e6080820152604051610c8c81611a72565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610cb983611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019083821067ffffffffffffffff831117610d575791610d2e9184936130368539612e59565b039083f080156109975773ffffffffffffffffffffffffffffffffffffffff6101809216611cb0565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57600460e073ffffffffffffffffffffffffffffffffffffffff60025416604051928380927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156109975760209291610f08575b5073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b610f21915060e03d60e0116102805761026a8183611ac8565b50505050505038610ee9565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576020610f66611a43565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602060ff60065460a01c166040519015158152f35b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061100361120f565b61024261121f565b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576110436111c4565b61104b6111ec565b6064359273ffffffffffffffffffffffffffffffffffffffff8416840361018b5760206103b38585856044359173ffffffffffffffffffffffffffffffffffffffff600254166126f0565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd8611a43565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b90503461018757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101875760209073ffffffffffffffffffffffffffffffffffffffff600554168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b602435908160020b82036111e757565b604435908160020b82036111e757565b604051611e7a80820182811067ffffffffffffffff82111761136e578291614789833903906000f080156113625760405161126981611a72565b600081526000602082015260006040820152600060608201526000608082015260405161129581611a72565b6000815260006020820152600060408201526000606082015260006080820152604051916112c283611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff84111761136e578392611336926130368539612e59565b03906000f080156113625773ffffffffffffffffffffffffffffffffffffffff6113609216611cb0565b565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9091600092670de0b6b3a7640000830292801593818104670de0b6b3a764000014851715611a165760011c93620f42408202918204620f42401417156119e95760011c82919260ff60065460a01c1694856000146119e257825b86156119da5750945b6119bc575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e575b501694863b15610a77576040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101859052888180604481015b0381838c5af180156109d35761196a575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357611933575b50853b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838b5af180156109d35790899161191e575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d3576118e7575b506040517fd0c93a7c000000000000000000000000000000000000000000000000000000008152602081600481895afa9081156109d35789916118a4575b506107328161167a93612f7a565b923393331561189c575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d357899561187b575b50604051976116d289611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f180156109975761182a575050565b6080813d608011611873575b8161184360809383611ac8565b81010312610187578051916020820151906fffffffffffffffffffffffffffffffff8216820361018b5750505050565b3d9150611836565b61189591955060203d6020116109cc576109bd8183611ac8565b93386116c4565b309450611684565b90506020813d6020116118df575b816118bf60209383611ac8565b81010312610a1f57906107326118d761167a93611b09565b91925061166c565b3d91506118b2565b6020813d602011611916575b8161190060209383611ac8565b81010312610a1f5761191190611b26565b61162e565b3d91506118f3565b8161192891611ac8565b610a775787386115d0565b6020813d602011611962575b8161194c60209383611ac8565b81010312610a1f5761195d90611b26565b61157e565b3d915061193f565b8861197791999299611ac8565b9638611521565b611997915060203d6020116103fe576103ef8183611ac8565b386114cb565b6119b6915060203d6020116103fe576103ef8183611ac8565b38611474565b9092506119c99150611c80565b906119d382611c80565b9038611405565b905094611400565b80926113f7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60065460a01c60ff1615611a64576e0f424000000000000000000000000090565b6910c6f7a0b5ed8d36b4c790565b60a0810190811067ffffffffffffffff82111761136e57604052565b610160810190811067ffffffffffffffff82111761136e57604052565b610100810190811067ffffffffffffffff82111761136e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761136e57604052565b51908160020b82036111e757565b519061ffff821682036111e757565b519081151582036111e757565b908160e09103126111e757805173ffffffffffffffffffffffffffffffffffffffff811681036111e75791611b6a60208301611b09565b91611b7760408201611b17565b91611b8460608301611b17565b91611b9160808201611b17565b9160a082015160ff811681036111e75760c0611bae919301611b26565b90565b908160209103126111e7575173ffffffffffffffffffffffffffffffffffffffff811681036111e75790565b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831217611c1757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff831317611c1757565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114611c175760000390565b9060009160405191615491918284019284841067ffffffffffffffff851117610d5757849273ffffffffffffffffffffffffffffffffffffffff60609593819361823e873916835216602082015284604082015203019082f08015610d845760405190611c3b908183019183831067ffffffffffffffff841117612567579173ffffffffffffffffffffffffffffffffffffffff849260609461660385393383521660208201526078604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781558080611e23611e55604051611dbc604082611ac8565b601481527f4d6f636b456e763a206d73672e73656e6465723a00000000000000000000000060208201526040519283917f319af333000000000000000000000000000000000000000000000000000000006020840152604060248401526064830190612594565b336044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50604051610f08908181019080821067ffffffffffffffff831117610d915760e08161d6cf938585833960608152601660608201527f4d6f636b20457468657265756d2048617264666f726b00000000000000000000608082015260a06020820152600360a08201527f4d4548000000000000000000000000000000000000000000000000000000000060c08201526012604082015203019084f080156102875773ffffffffffffffffffffffffffffffffffffffff611f939116807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355611f8e604051611f5f604082611ac8565b600381527f4d4548000000000000000000000000000000000000000000000000000000000060208201526125f3565b61267d565b604051918083019183831067ffffffffffffffff8411176125675791839160e093833960608152601060608201527f4a6f6b652043757272656e637920584400000000000000000000000000000000608082015260a06020820152600460a08201527f555358440000000000000000000000000000000000000000000000000000000060c08201526006604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060045416176004556120ad60405161207e604082611ac8565b600481527f555358440000000000000000000000000000000000000000000000000000000060208201526125f3565b6120b68161267d565b60207fffffffffffffffffffffff00000000000000000000000000000000000000000060847501f400000000000000000000000000000000000000007fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff6002541617938460025573ffffffffffffffffffffffffffffffffffffffff600354166006549073ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000084831160a01b169160ff837fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff86161760a01c1694856000146125605782815b1695867fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055560001461255957505b1694859216171760065561226e6040516121f4608082611ac8565b605381527f6966207468697320697320746865206c617374206c696e65206265666f726520868201527f6120726576657274207468656e206d616b65207375726520746f2072756e206660408201527f6f7267652077697468202d2d7270632d75726c0000000000000000000000000060608201526125f3565b8573ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff6122a5611a43565b62ffffff604051998a9889977f13ead5620000000000000000000000000000000000000000000000000000000089526004890152602488015260a01c1660448601521660648401525af1908115610997579073ffffffffffffffffffffffffffffffffffffffff91839161253a575b5016807fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255612380604051612351604082611ac8565b600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526125f3565b6123898161267d565b60065460a01c60ff16907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761890620d89e8808415612529576903c1fb96f3938f910000915b8515612518576903c1fb96f3938f910000955b6124d8575b506040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e57501694863b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810185905288818060448101611510565b9193505060020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146119e95784039161251283611c80565b386123e5565b6903c1fb96f3938f910000956123e0565b6903c1fb96f3938f910000916123cd565b612553915060203d6020116103fe576103ef8183611ac8565b38612314565b90506121d9565b82826121a4565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b919082519283825260005b8481106125de5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b8060208092840101518282860101520161259f565b600061263a61266682936040519283917f41304fac000000000000000000000000000000000000000000000000000000006020840152602060248401526044830190612594565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc200000000000000000000000000000000000000000000000000000000602084015216602482015260248152612666604482611ac8565b908160209103126111e7575162ffffff811681036111e75790565b9391929073ffffffffffffffffffffffffffffffffffffffff16906040517f095ea7b300000000000000000000000000000000000000000000000000000000815273e592427a0aece92de3edee1f18e0157c0586156460048201528160248201526020816044816000875af1801561136257612906575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa9384156113625773ffffffffffffffffffffffffffffffffffffffff80957f414bf38900000000000000000000000000000000000000000000000000000000976000916128e7575b506040519461280586611aab565b855281602086019316835262ffffff604086019116815262ffffff606086019133835283608088019542875260a089019788528160c08a019960008b528160e082019c168c526040519d8e52511660048d0152511660248b015251166044890152511660648701525160848601525160a48501525160c4840152511660e482015260208161010481600073e592427a0aece92de3edee1f18e0157c058615645af1908115611362576000916128b8575090565b90506020813d6020116128df575b816128d360209383611ac8565b810103126111e7575190565b3d91506128c6565b612900915060203d6020116109cc576109bd8183611ac8565b386127f7565b6020813d602011612950575b8161291f60209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612948602092611b26565b509550612767565b3d9150612912565b9173ffffffffffffffffffffffffffffffffffffffff8091959295169216906040517f095ea7b30000000000000000000000000000000000000000000000000000000081528260048201526c1000000000000000000000000060248201526020816044816000885af1801561136257612b9c575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa94851561136257600095612b7b575b5060405192612a3184611aab565b8352602083019373ffffffffffffffffffffffffffffffffffffffff168452604083019462ffffff168552606083013381526080840142815260a08501906c10000000000000000000000000825260c08601926000845260e087019473ffffffffffffffffffffffffffffffffffffffff16855260405198899889987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e48301525a92600061010492602095f1908115611362576000916128b8575090565b612b9591955060203d6020116109cc576109bd8183611ac8565b9338612a23565b6020813d602011612be6575b81612bb560209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612bde602092611b26565b5095506129cc565b3d9150612ba8565b919060009273ffffffffffffffffffffffffffffffffffffffff8116604051907f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa918215612e4e578692612e27575b5073ffffffffffffffffffffffffffffffffffffffff808516921691808314612e1e576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff6020916004938b91612e01575b501693604051928380927fd21220a70000000000000000000000000000000000000000000000000000000082525afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991612de2575b50169080841115612ddb5782935b1015612dd35750915b8573ffffffffffffffffffffffffffffffffffffffff8316803b156101875781906044604051809a81937f40c10f190000000000000000000000000000000000000000000000000000000083523060048401526c1000000000000000000000000060248401525af1968715610d8457612dc09697612dc3575b505073e592427a0aece92de3edee1f18e0157c05861564612958565b50565b81612dcd91611ac8565b38612da4565b905091612d2b565b8193612d22565b612dfb915060203d6020116103fe576103ef8183611ac8565b38612d14565b612e189150833d85116103fe576103ef8183611ac8565b38612cc2565b50505050509050565b612e4191925060e03d60e0116102805761026a8183611ac8565b5050505050509038612c48565b6040513d88823e3d90fd5b91909161024073ffffffffffffffffffffffffffffffffffffffff61014061026084019563ffffffff815116855263ffffffff602082015116602086015260ff604082015116604086015260ff6060820151166060860152612ef66080820151608087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b612f3c60a082015161012087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b8260c0820151166101c08601528260e0820151166101e086015282610100820151166102008601528261012082015116610220860152015116910152565b8060020b918060020b80156130065760008185079412600014612fcf576002612fa285611c80565b9105600290810b91900b13612fbc575090611bae91611bdd565b611bae92612fc991611c46565b90611bdd565b6002906000949394500560020b8260020b13600014612ffc57611bae9291612ff691611bdd565b90611c46565b50611bae91611bdd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a264697066735822122004adf304dfdb82ba37f8110667f9c6834327cefdd89f88c43499f7c5b66ebe0164736f6c634300081a0033a2646970667358221220b104f691366b94e7f44dc9ee1e1b7bfefbdc08d94b748ade85a15df01a8044c664736f6c634300081a0033","sourceMap":"123:264:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:28:1;123:264:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;193:19;;;;1590:14:0;193:19:56;;;;;123:264;193:19;;123:264;193:19;;;;;;;;123:264;;;;;237:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:264;;260:20;;;;;123:264;;;1590:14:0;260:20:56;;;;123:264;260:20;;;;;;;;;;;123:264;290:18;;123:264;290:18;;;;123:264;;;1590:14:0;290:18:56;;;;123:264;290:18;;123:264;290:18;;;;;;;;123:264;;;;;;1590:14:0;;;;;237:13:56;1590:14:0;;;;;123:264:56;1590:14:0;;;;;;;;;123:264:56;;6669:42:11;;1590:14:0;6669:42:11;;;1590:14:0;6669:42:11;;;123:264:56;;;;;;;;;;;;;;;;;1222:159:11;123:264:56;;;;;6669:42:11;123:264:56;;1590:14:0;;123:264:56;;;;;;;;1590:14:0;;123:264:56;;6669:42:11;;1590:14:0;6669:42:11;;;;;;:::i;:::-;1222:159;123:264:56;;1222:159:11;;591:42;1222:159;;;123:264:56;;6906:43:11;;1590:14:0;6906:43:11;;;6669:42;6906:43;;123:264:56;6669:42:11;6906:43;;;123:264:56;6906:43:11;;:::i;:::-;1222:159;123:264:56;;1222:159:11;;591:42;1222:159;;;123:264:56;;;;1590:14:0;123:264:56;;;;;;;;;;;;;;;1590:14:0;;;;;;;123:264:56;1590:14:0;;290:18:56;;;;;:::i;:::-;123:264;;290:18;;;;123:264;;;;290:18;123:264;;1590:14:0;123:264:56;;1590:14:0;;;;260:20:56;;;;;:::i;:::-;123:264;;260:20;;;;237:13;123:264;;;1590:14:0;;;;;;;;193:19:56;;;;:::i;:::-;;;;;1590:14:0;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1590:14:0;;;;;-1:-1:-1;1590:14:0","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":{\"script/DeployMock.sol\":\"DeployMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"script/DeployMock.sol\":{\"keccak256\":\"0x77dbb2685b6c86845eb73604b920ede9604a93fc3c6da033ae8cf7391ca509d7\",\"urls\":[\"bzz-raw://4177a1d2cc55f783f11b8df2f6c4f080643f9f70ef561e85d4fdc6cac366e40e\",\"dweb:/ipfs/QmRrrFFuEcwuKxvvbWJmvzG4JKrP4KQd4h5Zis1sAPCgV4\"]},\"src/core/FeeManager.sol\":{\"keccak256\":\"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf\",\"urls\":[\"bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4\",\"dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultFactory.sol\":{\"keccak256\":\"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a\",\"urls\":[\"bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668\",\"dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe\",\"urls\":[\"bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a\",\"dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]},\"src/more/FeeManagerLib.sol\":{\"keccak256\":\"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707\",\"urls\":[\"bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885\",\"dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck\"]},\"src/more/MockERC20.sol\":{\"keccak256\":\"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca\",\"urls\":[\"bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a\",\"dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp\"]},\"test/MockEnv.sol\":{\"keccak256\":\"0x8a222b8efd76e9bd6e6cec03190e4953b30b1b3ba70673f060203369d2b7f118\",\"urls\":[\"bzz-raw://a02f1e7acc02fd753e72317e8619f57f6055f4f6b3f46b4b78edf3de3edc48bf\",\"dweb:/ipfs/QmdYAMS1tussRHrtVGGc8LaSvRwC9vLqsEwrmPrAp2SJpL\"]},\"test/MockUtil.sol\":{\"keccak256\":\"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694\",\"urls\":[\"bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f\",\"dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/DeployMock.sol":"DeployMock"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol":{"keccak256":"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032","urls":["bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d","dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol":{"keccak256":"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24","urls":["bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844","dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"script/DeployMock.sol":{"keccak256":"0x77dbb2685b6c86845eb73604b920ede9604a93fc3c6da033ae8cf7391ca509d7","urls":["bzz-raw://4177a1d2cc55f783f11b8df2f6c4f080643f9f70ef561e85d4fdc6cac366e40e","dweb:/ipfs/QmRrrFFuEcwuKxvvbWJmvzG4JKrP4KQd4h5Zis1sAPCgV4"],"license":null},"src/core/FeeManager.sol":{"keccak256":"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf","urls":["bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4","dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp"],"license":null},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultFactory.sol":{"keccak256":"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a","urls":["bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668","dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe","urls":["bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a","dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null},"src/more/FeeManagerLib.sol":{"keccak256":"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707","urls":["bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885","dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck"],"license":null},"src/more/MockERC20.sol":{"keccak256":"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca","urls":["bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a","dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp"],"license":null},"test/MockEnv.sol":{"keccak256":"0x8a222b8efd76e9bd6e6cec03190e4953b30b1b3ba70673f060203369d2b7f118","urls":["bzz-raw://a02f1e7acc02fd753e72317e8619f57f6055f4f6b3f46b4b78edf3de3edc48bf","dweb:/ipfs/QmdYAMS1tussRHrtVGGc8LaSvRwC9vLqsEwrmPrAp2SJpL"],"license":null},"test/MockUtil.sol":{"keccak256":"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694","urls":["bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f","dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi"],"license":null}},"version":1},"id":56} \ No newline at end of file diff --git a/deployment/arb1/out/Dexorder.sol/Dexorder.json b/deployment/arb1/out/Dexorder.sol/Dexorder.json deleted file mode 100644 index 16d2f0e..0000000 --- a/deployment/arb1/out/Dexorder.sol/Dexorder.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"execute","inputs":[{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"req","type":"tuple","internalType":"struct Dexorder.ExecutionRequest","components":[{"name":"vault","type":"address","internalType":"address payable"},{"name":"orderIndex","type":"uint64","internalType":"uint64"},{"name":"trancheIndex","type":"uint8","internalType":"uint8"},{"name":"proof","type":"tuple","internalType":"struct PriceProof","components":[{"name":"proof","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"error","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"reqs","type":"tuple[]","internalType":"struct Dexorder.ExecutionRequest[]","components":[{"name":"vault","type":"address","internalType":"address payable"},{"name":"orderIndex","type":"uint64","internalType":"uint64"},{"name":"trancheIndex","type":"uint8","internalType":"uint8"},{"name":"proof","type":"tuple","internalType":"struct PriceProof","components":[{"name":"proof","type":"uint256","internalType":"uint256"}]}]}],"outputs":[{"name":"errors","type":"string[]","internalType":"string[]"}],"stateMutability":"nonpayable"},{"type":"event","name":"DexorderExecutions","inputs":[{"name":"id","type":"bytes16","indexed":true,"internalType":"bytes16"},{"name":"errors","type":"string[]","indexed":false,"internalType":"string[]"}],"anonymous":false}],"bytecode":{"object":"0x60a0806040523460225760006080526109989081610028823960805181608c0152f35b600080fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301efa5e51461035a578063f09e5827146100b55763f851a4400361000e57346100b05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b346100b05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b0576100ec610562565b60243567ffffffffffffffff81116100b057366023820112156100b057806004013561011781610669565b9161012560405193846105c9565b8183526024602084019260071b820101903682116100b057602401915b8183106102975750505080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061019161017b83610669565b9261018960405194856105c9565b808452610669565b0160005b81811061028657505060005b825160ff82169081101561021b57906101da826101c96101c360ff958861073b565b51610803565b6101d3828761073b565b528461073b565b501660ff81146101ec576001016101a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028283867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff00000000000000000000000000000000604051921691806102738582610681565b0390a260405191829182610681565b0390f35b806060602080938601015201610195565b600083360390608082126103575750604051906102b382610591565b843573ffffffffffffffffffffffffffffffffffffffff811681036100b0578252602085013567ffffffffffffffff811681036100b0576020830152604085013560ff811681036100b0576020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa091604085015201126100b057608091602091604051610340816105ad565b606087013581526060820152815201920191610142565b80fd5b346100b05760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057610391610562565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100b0576040516103c781610591565b60243573ffffffffffffffffffffffffffffffffffffffff811681036100b057815260443567ffffffffffffffff811681036100b057602082015260643560ff811681036100b057604082015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c3601126100b05761045d9060405161044e816105ad565b60843581526060820152610803565b60408051929061046d81856105c9565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160005b8181106105225761028284867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff0000000000000000000000000000000087846104ef856106ff565b526104f9846106ff565b5061050b604051928392169482610681565b0390a260405191829160208352602083019061060a565b806060602080938801015201610496565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600435907fffffffffffffffffffffffffffffffff00000000000000000000000000000000821682036100b057565b6080810190811067ffffffffffffffff82111761053357604052565b6020810190811067ffffffffffffffff82111761053357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053357604052565b919082519283825260005b8481106106545750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610615565b67ffffffffffffffff81116105335760051b60200190565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106106b457505050505090565b90919293946020806106f0837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08660019603018752895161060a565b970193019301919392906106a5565b80511561070c5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805182101561070c5760209160051b010190565b600060443d106107f2576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176107fd578282019283519167ffffffffffffffff83116107f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116107f557506107f2929101602001906105c9565b90565b949350505050565b92915050565b90606091805173ffffffffffffffffffffffffffffffffffffffff600091169167ffffffffffffffff602082015116606060ff60408401511692015193803b1561095e578392918360649260405197889586947f6e98833d000000000000000000000000000000000000000000000000000000008652600486015260248501525160448401525af1918261094e575b50906109385760018160033d11610928575b6308c379a0146108c2575b6108b65750565b604051903d90823e3d90fd5b6108ca61074f565b806108d6575b506108af565b93505080928051156108ea575b92386108d0565b506040516108f96040826105c9565b600381527f554e4b000000000000000000000000000000000000000000000000000000000060208201526108e3565b50600482803e815160e01c6108a4565b6040519192506109496020836105c9565b815290565b81610958916105c9565b38610892565b8380fdfea26469706673582212200e22ce0a5a5272d8a3a31d4bab405a71b5789e4283c0c7ebdb73318c731fefc764736f6c634300081a0033","sourceMap":"181:1884:74:-:0;;;;;;;380:1;364:18;;181:1884;;;;;;364:18;181:1884;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301efa5e51461035a578063f09e5827146100b55763f851a4400361000e57346100b05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b346100b05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b0576100ec610562565b60243567ffffffffffffffff81116100b057366023820112156100b057806004013561011781610669565b9161012560405193846105c9565b8183526024602084019260071b820101903682116100b057602401915b8183106102975750505080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061019161017b83610669565b9261018960405194856105c9565b808452610669565b0160005b81811061028657505060005b825160ff82169081101561021b57906101da826101c96101c360ff958861073b565b51610803565b6101d3828761073b565b528461073b565b501660ff81146101ec576001016101a1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b61028283867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff00000000000000000000000000000000604051921691806102738582610681565b0390a260405191829182610681565b0390f35b806060602080938601015201610195565b600083360390608082126103575750604051906102b382610591565b843573ffffffffffffffffffffffffffffffffffffffff811681036100b0578252602085013567ffffffffffffffff811681036100b0576020830152604085013560ff811681036100b0576020917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa091604085015201126100b057608091602091604051610340816105ad565b606087013581526060820152815201920191610142565b80fd5b346100b05760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b057610391610562565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100b0576040516103c781610591565b60243573ffffffffffffffffffffffffffffffffffffffff811681036100b057815260443567ffffffffffffffff811681036100b057602082015260643560ff811681036100b057604082015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c3601126100b05761045d9060405161044e816105ad565b60843581526060820152610803565b60408051929061046d81856105c9565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160005b8181106105225761028284867f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad7fffffffffffffffffffffffffffffffff0000000000000000000000000000000087846104ef856106ff565b526104f9846106ff565b5061050b604051928392169482610681565b0390a260405191829160208352602083019061060a565b806060602080938801015201610496565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600435907fffffffffffffffffffffffffffffffff00000000000000000000000000000000821682036100b057565b6080810190811067ffffffffffffffff82111761053357604052565b6020810190811067ffffffffffffffff82111761053357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761053357604052565b919082519283825260005b8481106106545750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610615565b67ffffffffffffffff81116105335760051b60200190565b602081016020825282518091526040820191602060408360051b8301019401926000915b8383106106b457505050505090565b90919293946020806106f0837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08660019603018752895161060a565b970193019301919392906106a5565b80511561070c5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805182101561070c5760209160051b010190565b600060443d106107f2576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176107fd578282019283519167ffffffffffffffff83116107f5577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116107f557506107f2929101602001906105c9565b90565b949350505050565b92915050565b90606091805173ffffffffffffffffffffffffffffffffffffffff600091169167ffffffffffffffff602082015116606060ff60408401511692015193803b1561095e578392918360649260405197889586947f6e98833d000000000000000000000000000000000000000000000000000000008652600486015260248501525160448401525af1918261094e575b50906109385760018160033d11610928575b6308c379a0146108c2575b6108b65750565b604051903d90823e3d90fd5b6108ca61074f565b806108d6575b506108af565b93505080928051156108ea575b92386108d0565b506040516108f96040826105c9565b600381527f554e4b000000000000000000000000000000000000000000000000000000000060208201526108e3565b50600482803e815160e01c6108a4565b6040519192506109496020836105c9565b815290565b81610958916105c9565b38610892565b8380fdfea26469706673582212200e22ce0a5a5272d8a3a31d4bab405a71b5789e4283c0c7ebdb73318c731fefc764736f6c634300081a0033","sourceMap":"181:1884:74:-:0;;;;;;;;;-1:-1:-1;181:1884:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;206:30;181:1884;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1335:9;;181:1884;1361:3;181:1884;;;;;1346:13;;;;;;1400:7;1379:29;1400:7;1391:17;1400:7;181:1884;1400:7;;;:::i;:::-;;1391:17;:::i;:::-;1379:29;;;;:::i;:::-;;;;:::i;:::-;;181:1884;;;;;;;;1335:9;;181:1884;;;;;;;;;;1346:13;181:1884;1346:13;;1423:30;181:1884;;;;;1423:30;;;;;;:::i;:::-;;;;181:1884;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;869:13;181:1884;;;;;;:::i;:::-;;;;;;;;;869:13;:::i;:::-;181:1884;;;;;;;;;:::i;:::-;930:1;181:1884;;;;;;;;;;;;942:17;;974:30;181:1884;942:17;;;;;:::i;:::-;;;;;:::i;:::-;;974:30;181:1884;;;;;;974:30;;;:::i;:::-;;;;181:1884;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;181:1884:74;;;;;-1:-1:-1;181:1884:74;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;181:1884:74;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::o;:::-;;;;;:::o;1467:596::-;;181:1884;;;;;-1:-1:-1;181:1884:74;;1678:14;181:1884;1678:14;;;181:1884;;;;1694:16;;;181:1884;;1712:9;;;1652:70;;;;;;181:1884;;;;1652:70;181:1884;1694:16;181:1884;1652:70;;;;;181:1884;1652:70;;;;;181:1884;;;;;;;;;;1652:70;;;;;;1467:596;-1:-1:-1;1648:409:74;;;;;181:1884;;;;;1648:409;;;;;;;;;1467:596::o;1648:409::-;1694:16;181:1884;;;;;;;;;1648:409;1820:237;;:::i;:::-;;;;1648:409;;;;1820:237;;;;;;;181:1884;1872:25;1868:62;;1820:237;;;;;1868:62;181:1884;1694:16;181:1884;;1694:16;181:1884;;:::i;:::-;;;;;1678:14;181:1884;;;1868:62;;181:1884;;1652:70;181:1884;;;;;;;;;1648:409;1694:16;181:1884;;;-1:-1:-1;181:1884:74;1678:14;181:1884;;:::i;:::-;;;1648:409;1467:596::o;1652:70::-;;;;;:::i;:::-;;;;;181:1884;;","linkReferences":{},"immutableReferences":{"52713":[{"start":140,"length":32}]}},"methodIdentifiers":{"admin()":"f851a440","execute(bytes16,(address,uint64,uint8,(uint256)))":"01efa5e5","execute(bytes16,(address,uint64,uint8,(uint256))[])":"f09e5827"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"errors\",\"type\":\"string[]\"}],\"name\":\"DexorderExecutions\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"trancheIndex\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"internalType\":\"struct Dexorder.ExecutionRequest\",\"name\":\"req\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"components\":[{\"internalType\":\"address payable\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"trancheIndex\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"internalType\":\"struct Dexorder.ExecutionRequest[]\",\"name\":\"reqs\",\"type\":\"tuple[]\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"errors\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/more/Dexorder.sol\":\"Dexorder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes16","name":"id","type":"bytes16","indexed":true},{"internalType":"string[]","name":"errors","type":"string[]","indexed":false}],"type":"event","name":"DexorderExecutions","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes16","name":"id","type":"bytes16"},{"internalType":"struct Dexorder.ExecutionRequest","name":"req","type":"tuple","components":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"uint64","name":"orderIndex","type":"uint64"},{"internalType":"uint8","name":"trancheIndex","type":"uint8"},{"internalType":"struct PriceProof","name":"proof","type":"tuple","components":[{"internalType":"uint256","name":"proof","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execute","outputs":[{"internalType":"string","name":"error","type":"string"}]},{"inputs":[{"internalType":"bytes16","name":"id","type":"bytes16"},{"internalType":"struct Dexorder.ExecutionRequest[]","name":"reqs","type":"tuple[]","components":[{"internalType":"address payable","name":"vault","type":"address"},{"internalType":"uint64","name":"orderIndex","type":"uint64"},{"internalType":"uint8","name":"trancheIndex","type":"uint8"},{"internalType":"struct PriceProof","name":"proof","type":"tuple","components":[{"internalType":"uint256","name":"proof","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execute","outputs":[{"internalType":"string[]","name":"errors","type":"string[]"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/more/Dexorder.sol":"Dexorder"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null}},"version":1},"id":74} \ No newline at end of file diff --git a/deployment/arb1/out/ERC20.sol/ERC20.json b/deployment/arb1/out/ERC20.sol/ERC20.json deleted file mode 100644 index a4f318b..0000000 --- a/deployment/arb1/out/ERC20.sol/ERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","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":"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":"value","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":"value","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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"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\":[],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib_openzeppelin_contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","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":[],"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":"value","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":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"id":21} \ No newline at end of file diff --git a/deployment/arb1/out/ERC20/IERC20.sol/IERC20.json b/deployment/arb1/out/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 24106d0..0000000 --- a/deployment/arb1/out/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"value","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":"value","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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"}},"version":1},"id":22} \ No newline at end of file diff --git a/deployment/arb1/out/ERC721/IERC721.sol/IERC721.json b/deployment/arb1/out/ERC721/IERC721.sol/IERC721.json deleted file mode 100644 index 8af8c86..0000000 --- a/deployment/arb1/out/ERC721/IERC721.sol/IERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC-721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":"IERC721"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"}},"version":1},"id":24} \ No newline at end of file diff --git a/deployment/arb1/out/FeeManager.sol/FeeManager.json b/deployment/arb1/out/FeeManager.sol/FeeManager.json deleted file mode 100644 index 0eb0031..0000000 --- a/deployment/arb1/out/FeeManager.sol/FeeManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"args","type":"tuple","internalType":"struct FeeManager.ConstructorArgs","components":[{"name":"LIMIT_CHANGE_NOTICE_DURATION","type":"uint32","internalType":"uint32"},{"name":"FEE_CHANGE_NOTICE_DURATION","type":"uint32","internalType":"uint32"},{"name":"MAX_INCREASE_ORDER_FEE_PCT","type":"uint8","internalType":"uint8"},{"name":"MAX_INCREASE_TRANCHE_FEE_PCT","type":"uint8","internalType":"uint8"},{"name":"fees","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]},{"name":"limits","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]},{"name":"admin","type":"address","internalType":"address"},{"name":"adjuster","type":"address","internalType":"address"},{"name":"orderFeeAccount","type":"address","internalType":"address payable"},{"name":"gasFeeAccount","type":"address","internalType":"address payable"},{"name":"fillFeeAccount","type":"address","internalType":"address payable"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"FEE_CHANGE_NOTICE_DURATION","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"LIMIT_CHANGE_NOTICE_DURATION","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_INCREASE_ORDER_FEE_PCT","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"MAX_INCREASE_TRANCHE_FEE_PCT","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"adjuster","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fees","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"fillFeeAccount","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"gasFeeAccount","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"limits","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"orderFeeAccount","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"proposedFeeActivationTime","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"proposedFees","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"proposedLimitActivationTime","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"proposedLimits","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"setFeeAccounts","inputs":[{"name":"adjuster_","type":"address","internalType":"address"},{"name":"fillFeeAccount_","type":"address","internalType":"address payable"},{"name":"orderFeeAccount_","type":"address","internalType":"address payable"},{"name":"gasFeeAccount_","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFees","inputs":[{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimits","inputs":[{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"FeeLimitsChanged","inputs":[{"name":"limits","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"anonymous":false},{"type":"event","name":"FeeLimitsProposed","inputs":[{"name":"limits","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]},{"name":"activationTime","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"FeesChanged","inputs":[{"name":"fees","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"anonymous":false},{"type":"event","name":"FeesProposed","inputs":[{"name":"fees","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]},{"name":"activationTime","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false}],"bytecode":{"object":"0x610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a0033","sourceMap":"2245:6231:58:-:0;;;;;;;;;;;;;;;;;-1:-1:-1;;2245:6231:58;;;;-1:-1:-1;;;;;2245:6231:58;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2245:6231:58;;;;-1:-1:-1;;;;;2245:6231:58;;;;;;;;;;4996:29;;2245:6231;4959:22;;2245:6231;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;4439:64;2245:6231;;;4513:60;2245:6231;;;4583:60;2245:6231;;;4653:64;4736:9;;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4765:11;;2245:6231;;;;;4755:21;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4755:21;2245:6231;;;;;;;;;;4787:18;2245:6231;;;;;;;;;;;;;;4815:38;2245:6231;;;4815:38;2245:6231;;;;;;;;;;;;;;;4863:34;2245:6231;;;4863:34;2245:6231;;;;;;;;;;;;;;;;;;;;;4971:9;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4959:22;;;;;5013:11;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4996:29;;2245:6231;;4996:29;;;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2245:6231:58;;;;;;;;;-1:-1:-1;2245:6231:58;;;;;;-1:-1:-1;2245:6231:58;;;;;-1:-1:-1;2245:6231:58;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;2245:6231:58;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;2245:6231:58;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a0033","sourceMap":"2245:6231:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3711:39;2245:6231;;;;;;;;;;;;;;;;;;;2508:52;2245:6231;;;;;;;;;;;;;;;;;3795:47;2245:6231;;;;;;;;;;;;;;;;;;;;;3899:46;2245:6231;;;;;;;;;;;;;;;;;;;;;3401:48;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5506:41;2245:6231;5528:5;2245:6231;5514:10;:19;5506:41;:::i;:::-;2245:6231;;8320:20;2245:6231;;;;;;;;8320:20;2245:6231;;8350:32;2245:6231;;;8350:32;2245:6231;;8392:34;2245:6231;;;8392:34;2245:6231;;8436:30;2245:6231;;;8436:30;2245:6231;;;;;;;;;;;;;;;;;;;2772:50;2245:6231;;;;;;;;;;;;;;;;;3756:32;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;3059:51;2245:6231;;;;;;;;;;;;;;;;;:::i;:::-;;;5122:25;2245:6231;;5122:30;;;:78;;;;2245:6231;-1:-1:-1;5122:102:58;;;2245:6231;;5203:13;2245:6231;:::i;5122:102::-;2245:6231;;;;:::i;5122:78::-;5185:15;;;-1:-1:-1;5156:44:58;5122:78;;;2245:6231;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3653:50;2245:6231;;;;;;;;;;;;;;;;;;;;5506:41;2245:6231;5528:5;2245:6231;5514:10;:19;5506:41;:::i;:::-;7734:363;;:::i;:::-;2245:6231;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;7975:46;7993:28;;2245:6231;7975:15;:46;:::i;:::-;2245:6231;;;7938:84;2245:6231;;;7938:84;2245:6231;8037:53;;:::i;:::-;;;;;2245:6231;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5635:5;2245:6231;5621:10;:19;:45;;;;2245:6231;;;;6856:871;;:::i;:::-;7476:61;7016:8;;:::i;:::-;7241:42;2245:6231;7123:14;;:::i;:::-;2245:6231;;7142:14;;:::i;:::-;2245:6231;;;;;;;7142:14;7217;;2245:6231;;;-1:-1:-1;7250:25:58;7241:42;:::i;:::-;7427:38;2245:6231;7319:12;;:::i;:::-;2245:6231;;7336:12;;:::i;:::-;2245:6231;;;;7388:12;;2245:6231;;;7336:12;7405;;2245:6231;;;-1:-1:-1;7436:21:58;7427:38;:::i;:::-;2245:6231;7485:20;;;;:::i;:::-;7509;;2245:6231;;;;7485:44;;7476:61;:::i;:::-;2245:6231;;;:::i;:::-;;;7548:21;2245:6231;;;7548:21;2245:6231;;;:::i;:::-;;;7548:21;2245:6231;;;;;;;;7548:21;2245:6231;;;:::i;:::-;;;7548:21;2245:6231;;;;;;;;7548:21;2245:6231;;;:::i;:::-;;;7548:21;2245:6231;;;;;;;;7548:21;2245:6231;;;:::i;:::-;;;7548:21;2245:6231;;7142:14;2245:6231;;;;;7548:21;2245:6231;;7614:44;7632:26;;2245:6231;7614:15;:44;:::i;:::-;2245:6231;;;7579:80;2245:6231;;;7579:80;2245:6231;7674:46;;:::i;:::-;;;;;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;5621:45;2245:6231;;5658:8;2245:6231;;;;5621:10;5644:22;5621:45;;2245:6231;;;;;;;;;;;;;;;2898:49;2245:6231;;;;;;;;;;;;;;;;;;3848:45;2245:6231;;;;;;;;;;;;;;;;:::o;:::-;7142:14;2245:6231;;;;;;;;;:::o;:::-;7319:12;2245:6231;;;;;;;;;:::o;:::-;7336:12;2245:6231;;;;;;;;;:::o;:::-;7485:20;2245:6231;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;2245:6231:58;;;;;-1:-1:-1;2245:6231:58;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;:::i;:::-;;;3380:13;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;5238:202;2245:6231;;:::i;:::-;;;5323:27;2245:6231;;5323:32;;;:82;;;;5238:202;-1:-1:-1;5323:110:58;;;2245:6231;5408:15;2245:6231;:::i;:::-;5238:202;:::o;5323:110::-;2245:6231;5426:7;2245:6231;:::i;5323:82::-;5390:15;;;-1:-1:-1;5359:46:58;5323:82;;;5717:1132;2245:6231;5842:27;2245:6231;;5842:32;;;:82;;;;5717:1132;5838:183;;;5717:1132;2245:6231;6034:25;2245:6231;;6034:30;;;:78;;;;5717:1132;6030:813;;;5717:1132::o;6030:813::-;2245:6231;;;:::i;:::-;;;;;6226:13;;;2245:6231;;;;;;6285:7;2245:6231;;;;;;;;;;;6361:11;;;;2245:6231;;;;;6377:11;;;;2245:6231;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6480:141:58;;6030:813;2245:6231;;;;;-1:-1:-1;6634:129:58;;6030:813;-1:-1:-1;;2245:6231:58;;5873:1;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6226:13;2245:6231;;;;;;;;;;;;6034:25;2245:6231;;;;;;5717:1132::o;6634:129::-;2245:6231;;;;6634:129;;;;6480:141;2245:6231;;;;6480:141;;;;6034:78;6097:15;;;-1:-1:-1;6068:44:58;6034:78;;;5838:183;5950:15;2245:6231;5940:25;2245:6231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5842:27;2245:6231;;;;;;5838:183;;5842:82;5909:15;;;-1:-1:-1;5878:46:58;5842:82;;","linkReferences":{},"immutableReferences":{"47284":[{"start":545,"length":32},{"start":2192,"length":32}],"47286":[{"start":1315,"length":32},{"start":3070,"length":32}],"47288":[{"start":3384,"length":32}],"47290":[{"start":1491,"length":32}],"47329":[{"start":450,"length":32},{"start":1017,"length":32},{"start":1844,"length":32},{"start":2581,"length":32}]}},"methodIdentifiers":{"FEE_CHANGE_NOTICE_DURATION()":"c0021df1","LIMIT_CHANGE_NOTICE_DURATION()":"f1d08853","MAX_INCREASE_ORDER_FEE_PCT()":"44a505db","MAX_INCREASE_TRANCHE_FEE_PCT()":"ab1a57a8","adjuster()":"be989523","admin()":"f851a440","fees()":"9af1d35a","fillFeeAccount()":"ea43b36b","gasFeeAccount()":"1db89da1","limits()":"860aefcf","orderFeeAccount()":"ebd3cdcd","proposedFeeActivationTime()":"d0c683b1","proposedFees()":"f9828cff","proposedLimitActivationTime()":"6f7a2458","proposedLimits()":"57d1c53d","setFeeAccounts(address,address,address,address)":"ca7784cc","setFees((uint8,uint8,uint8,uint8,uint8))":"478c3b1a","setLimits((uint8,uint8,uint8,uint8,uint8))":"591cef8f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"LIMIT_CHANGE_NOTICE_DURATION\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"FEE_CHANGE_NOTICE_DURATION\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"MAX_INCREASE_ORDER_FEE_PCT\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"MAX_INCREASE_TRANCHE_FEE_PCT\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"fees\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"limits\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"adjuster\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"orderFeeAccount\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"gasFeeAccount\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"fillFeeAccount\",\"type\":\"address\"}],\"internalType\":\"struct FeeManager.ConstructorArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"limits\",\"type\":\"tuple\"}],\"name\":\"FeeLimitsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"limits\",\"type\":\"tuple\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"FeeLimitsProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"fees\",\"type\":\"tuple\"}],\"name\":\"FeesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"fees\",\"type\":\"tuple\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"FeesProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FEE_CHANGE_NOTICE_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"LIMIT_CHANGE_NOTICE_DURATION\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_INCREASE_ORDER_FEE_PCT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_INCREASE_TRANCHE_FEE_PCT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"adjuster\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fees\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fillFeeAccount\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasFeeAccount\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"orderFeeAccount\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedFeeActivationTime\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedFees\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedLimitActivationTime\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedLimits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adjuster_\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"fillFeeAccount_\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"orderFeeAccount_\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"gasFeeAccount_\",\"type\":\"address\"}],\"name\":\"setFeeAccounts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"setFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"setLimits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/FeeManager.sol\":\"FeeManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"src/core/FeeManager.sol\":{\"keccak256\":\"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf\",\"urls\":[\"bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4\",\"dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct FeeManager.ConstructorArgs","name":"args","type":"tuple","components":[{"internalType":"uint32","name":"LIMIT_CHANGE_NOTICE_DURATION","type":"uint32"},{"internalType":"uint32","name":"FEE_CHANGE_NOTICE_DURATION","type":"uint32"},{"internalType":"uint8","name":"MAX_INCREASE_ORDER_FEE_PCT","type":"uint8"},{"internalType":"uint8","name":"MAX_INCREASE_TRANCHE_FEE_PCT","type":"uint8"},{"internalType":"struct IFeeManager.FeeSchedule","name":"fees","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"limits","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]},{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"adjuster","type":"address"},{"internalType":"address payable","name":"orderFeeAccount","type":"address"},{"internalType":"address payable","name":"gasFeeAccount","type":"address"},{"internalType":"address payable","name":"fillFeeAccount","type":"address"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"limits","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true}],"type":"event","name":"FeeLimitsChanged","anonymous":false},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"limits","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":true}],"type":"event","name":"FeeLimitsProposed","anonymous":false},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"fees","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true}],"type":"event","name":"FeesChanged","anonymous":false},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"fees","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":true}],"type":"event","name":"FeesProposed","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"FEE_CHANGE_NOTICE_DURATION","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LIMIT_CHANGE_NOTICE_DURATION","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_INCREASE_ORDER_FEE_PCT","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_INCREASE_TRANCHE_FEE_PCT","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"adjuster","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fees","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fillFeeAccount","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasFeeAccount","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"limits","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"orderFeeAccount","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedFeeActivationTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedFees","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedLimitActivationTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedLimits","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[{"internalType":"address","name":"adjuster_","type":"address"},{"internalType":"address payable","name":"fillFeeAccount_","type":"address"},{"internalType":"address payable","name":"orderFeeAccount_","type":"address"},{"internalType":"address payable","name":"gasFeeAccount_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeAccounts"},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"setFees"},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimits"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/FeeManager.sol":"FeeManager"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/core/FeeManager.sol":{"keccak256":"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf","urls":["bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4","dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null}},"version":1},"id":58} \ No newline at end of file diff --git a/deployment/arb1/out/FeeManagerLib.sol/FeeManagerLib.json b/deployment/arb1/out/FeeManagerLib.sol/FeeManagerLib.json deleted file mode 100644 index d3653a1..0000000 --- a/deployment/arb1/out/FeeManagerLib.sol/FeeManagerLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220e07132f526b5b9c5a19a0e8e7daa7d2735421b73190ff3abc62c1f722c73d4d164736f6c634300081a0033","sourceMap":"90:5437:75:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e07132f526b5b9c5a19a0e8e7daa7d2735421b73190ff3abc62c1f722c73d4d164736f6c634300081a0033","sourceMap":"90:5437:75:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/more/FeeManagerLib.sol\":\"FeeManagerLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"src/core/FeeManager.sol\":{\"keccak256\":\"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf\",\"urls\":[\"bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4\",\"dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/more/FeeManagerLib.sol\":{\"keccak256\":\"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707\",\"urls\":[\"bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885\",\"dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/more/FeeManagerLib.sol":"FeeManagerLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/core/FeeManager.sol":{"keccak256":"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf","urls":["bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4","dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/more/FeeManagerLib.sol":{"keccak256":"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707","urls":["bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885","dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck"],"license":null}},"version":1},"id":75} \ No newline at end of file diff --git a/deployment/arb1/out/FixedPoint96.sol/FixedPoint96.json b/deployment/arb1/out/FixedPoint96.sol/FixedPoint96.json deleted file mode 100644 index 6429067..0000000 --- a/deployment/arb1/out/FixedPoint96.sol/FixedPoint96.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220b86721fbe6672885550eaac71307b6d67c622846b7e03d70eaa59106c7cbe1b864736f6c634300081a0033","sourceMap":"245:134:39:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220b86721fbe6672885550eaac71307b6d67c622846b7e03d70eaa59106c7cbe1b864736f6c634300081a0033","sourceMap":"245:134:39:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Used in SqrtPriceMath.sol\",\"kind\":\"dev\",\"methods\":{},\"title\":\"FixedPoint96\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library for handling binary fixed point numbers, see https://en.wikipedia.org/wiki/Q_(number_format)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":\"FixedPoint96\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol":"FixedPoint96"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol":{"keccak256":"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032","urls":["bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d","dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"],"license":"GPL-2.0-or-later"}},"version":1},"id":39} \ No newline at end of file diff --git a/deployment/arb1/out/FullMath.sol/FullMath.json b/deployment/arb1/out/FullMath.sol/FullMath.json deleted file mode 100644 index 0f25e26..0000000 --- a/deployment/arb1/out/FullMath.sol/FullMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a55030da2dac373ac051c97945d642a655c51a6ef8e9af27a639f77d552df01264736f6c634300081a0033","sourceMap":"355:4893:40:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a55030da2dac373ac051c97945d642a655c51a6ef8e9af27a639f77d552df01264736f6c634300081a0033","sourceMap":"355:4893:40:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Handles \\\"phantom overflow\\\" i.e., allows multiplication and division where an intermediate value overflows 256 bits\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Contains 512-bit math functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":\"FullMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":"FullMath"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"}},"version":1},"id":40} \ No newline at end of file diff --git a/deployment/arb1/out/IEEE754.sol/IEEE754.json b/deployment/arb1/out/IEEE754.sol/IEEE754.json deleted file mode 100644 index 88164e5..0000000 --- a/deployment/arb1/out/IEEE754.sol/IEEE754.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212202de4d8acba31a3a5bc72cbdc12a7569e66da0b06ceabf80f491bc13631242aca64736f6c634300081a0033","sourceMap":"169:2258:59:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212202de4d8acba31a3a5bc72cbdc12a7569e66da0b06ceabf80f491bc13631242aca64736f6c634300081a0033","sourceMap":"169:2258:59:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/IEEE754.sol\":\"IEEE754\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/IEEE754.sol":"IEEE754"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null}},"version":1},"id":59} \ No newline at end of file diff --git a/deployment/arb1/out/IERC165.sol/IERC165.json b/deployment/arb1/out/IERC165.sol/IERC165.json deleted file mode 100644 index 19e5ef0..0000000 --- a/deployment/arb1/out/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/interfaces/IERC165.sol":"IERC165"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"}},"version":1},"id":12} \ No newline at end of file diff --git a/deployment/arb1/out/IERC20.sol/IERC20.json b/deployment/arb1/out/IERC20.sol/IERC20.json deleted file mode 100644 index 7de8dcb..0000000 --- a/deployment/arb1/out/IERC20.sol/IERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","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":"account","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":"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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"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\":\"account\",\"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\":[],\"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\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.This includes the optional name, symbol, and decimals metadata.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"balanceOf(address)\":{\"notice\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","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":"account","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":[],"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":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"balanceOf(address)":{"notice":"Returns the amount of tokens owned by `account`."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/interfaces/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"}},"version":1},"id":13} \ No newline at end of file diff --git a/deployment/arb1/out/IERC20Metadata.sol/IERC20Metadata.json b/deployment/arb1/out/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index 28ddfe7..0000000 --- a/deployment/arb1/out/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","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":"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":"value","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":"value","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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"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\":[],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"returns\":{\"_0\":\"The number of decimal places the token has\"}},\"name()\":{\"returns\":{\"_0\":\"The name of the token\"}},\"symbol()\":{\"returns\":{\"_0\":\"The symbol of the token\"}},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"title\":\"IERC20MetadataInterface for ERC20 Metadata\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Extension to IERC20 that includes token metadata\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","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":[],"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":"value","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":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"decimals()":{"returns":{"_0":"The number of decimal places the token has"}},"name()":{"returns":{"_0":"The name of the token"}},"symbol()":{"returns":{"_0":"The symbol of the token"}},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null}},"version":1},"id":42} \ No newline at end of file diff --git a/deployment/arb1/out/IERC721.sol/IERC721.json b/deployment/arb1/out/IERC721.sol/IERC721.json deleted file mode 100644 index 6e4f886..0000000 --- a/deployment/arb1/out/IERC721.sol/IERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x80ac58cd.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/interfaces/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/interfaces/IERC721.sol":"IERC721"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/deployment/arb1/out/IERC721.sol/IERC721Enumerable.json b/deployment/arb1/out/IERC721.sol/IERC721Enumerable.json deleted file mode 100644 index 9aa6f1d..0000000 --- a/deployment/arb1/out/IERC721.sol/IERC721Enumerable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x780e9d63.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"tokenByIndex(uint256)\":{\"details\":\"Throws if `_index` >= `totalSupply()`.\",\"params\":{\"_index\":\"A counter less than `totalSupply()`\"},\"returns\":{\"_0\":\"The token identifier for the `_index`th NFT, (sort order not specified)\"}},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Throws if `_index` >= `balanceOf(_owner)` or if `_owner` is the zero address, representing invalid NFTs.\",\"params\":{\"_index\":\"A counter less than `balanceOf(_owner)`\",\"_owner\":\"An address where we are interested in NFTs owned by them\"},\"returns\":{\"_0\":\"The token identifier for the `_index`th NFT assigned to `_owner`, (sort order not specified)\"}},\"totalSupply()\":{\"returns\":{\"_0\":\"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"tokenByIndex(uint256)\":{\"notice\":\"Enumerate valid NFTs\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"notice\":\"Enumerate NFTs assigned to an owner\"},\"totalSupply()\":{\"notice\":\"Count NFTs tracked by this contract\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/interfaces/IERC721.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"tokenByIndex(uint256)":{"details":"Throws if `_index` >= `totalSupply()`.","params":{"_index":"A counter less than `totalSupply()`"},"returns":{"_0":"The token identifier for the `_index`th NFT, (sort order not specified)"}},"tokenOfOwnerByIndex(address,uint256)":{"details":"Throws if `_index` >= `balanceOf(_owner)` or if `_owner` is the zero address, representing invalid NFTs.","params":{"_index":"A counter less than `balanceOf(_owner)`","_owner":"An address where we are interested in NFTs owned by them"},"returns":{"_0":"The token identifier for the `_index`th NFT assigned to `_owner`, (sort order not specified)"}},"totalSupply()":{"returns":{"_0":"A count of valid NFTs tracked by this contract, where each one of them has an assigned and queryable owner not equal to the zero address"}},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"tokenByIndex(uint256)":{"notice":"Enumerate valid NFTs"},"tokenOfOwnerByIndex(address,uint256)":{"notice":"Enumerate NFTs assigned to an owner"},"totalSupply()":{"notice":"Count NFTs tracked by this contract"},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/interfaces/IERC721.sol":"IERC721Enumerable"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/deployment/arb1/out/IERC721.sol/IERC721Metadata.json b/deployment/arb1/out/IERC721.sol/IERC721Metadata.json deleted file mode 100644 index cc93587..0000000 --- a/deployment/arb1/out/IERC721.sol/IERC721Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"_approved","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"_name","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"_symbol","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721 Note: the ERC-165 identifier for this interface is 0x5b5e139f.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.\",\"params\":{\"_approved\":\"The new approved NFT controller\",\"_tokenId\":\"The NFT to approve\"}},\"balanceOf(address)\":{\"details\":\"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.\",\"params\":{\"_owner\":\"An address for whom to query the balance\"},\"returns\":{\"_0\":\"The number of NFTs owned by `_owner`, possibly zero\"}},\"getApproved(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_tokenId\":\"The NFT to find the approved address for\"},\"returns\":{\"_0\":\"The approved address for this NFT, or the zero address if there is none\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"_operator\":\"The address that acts on behalf of the owner\",\"_owner\":\"The address that owns the NFTs\"},\"returns\":{\"_0\":\"True if `_operator` is an approved operator for `_owner`, false otherwise\"}},\"ownerOf(uint256)\":{\"details\":\"NFTs assigned to zero address are considered invalid, and queries about them do throw.\",\"params\":{\"_tokenId\":\"The identifier for an NFT\"},\"returns\":{\"_0\":\"The address of the owner of the NFT\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"This works identically to the other function with an extra data parameter, except this function just sets data to \\\"\\\".\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\",\"data\":\"Additional data with no specified format, sent in call to `_to`\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.\",\"params\":{\"_approved\":\"True if the operator is approved, false to revoke approval\",\"_operator\":\"Address to add to the set of authorized operators\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165\"},\"returns\":{\"_0\":\"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise\"}},\"tokenURI(uint256)\":{\"details\":\"Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the \\\"ERC721 Metadata JSON Schema\\\".\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.\",\"params\":{\"_from\":\"The current owner of the NFT\",\"_to\":\"The new owner\",\"_tokenId\":\"The NFT to transfer\"}}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Change or reaffirm the approved address for an NFT\"},\"balanceOf(address)\":{\"notice\":\"Count all NFTs assigned to an owner\"},\"getApproved(uint256)\":{\"notice\":\"Get the approved address for a single NFT\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Query if an address is an authorized operator for another address\"},\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"ownerOf(uint256)\":{\"notice\":\"Find the owner of an NFT\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"notice\":\"Transfers the ownership of an NFT from one address to another address\"},\"setApprovalForAll(address,bool)\":{\"notice\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage all of `msg.sender`'s assets\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"},\"tokenURI(uint256)\":{\"notice\":\"A distinct Uniform Resource Identifier (URI) for a given asset.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/interfaces/IERC721.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"_symbol","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"The zero address indicates there is no approved address. Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.","params":{"_approved":"The new approved NFT controller","_tokenId":"The NFT to approve"}},"balanceOf(address)":{"details":"NFTs assigned to the zero address are considered invalid, and this function throws for queries about the zero address.","params":{"_owner":"An address for whom to query the balance"},"returns":{"_0":"The number of NFTs owned by `_owner`, possibly zero"}},"getApproved(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT.","params":{"_tokenId":"The NFT to find the approved address for"},"returns":{"_0":"The approved address for this NFT, or the zero address if there is none"}},"isApprovedForAll(address,address)":{"params":{"_operator":"The address that acts on behalf of the owner","_owner":"The address that owns the NFTs"},"returns":{"_0":"True if `_operator` is an approved operator for `_owner`, false otherwise"}},"ownerOf(uint256)":{"details":"NFTs assigned to zero address are considered invalid, and queries about them do throw.","params":{"_tokenId":"The identifier for an NFT"},"returns":{"_0":"The address of the owner of the NFT"}},"safeTransferFrom(address,address,uint256)":{"details":"This works identically to the other function with an extra data parameter, except this function just sets data to \"\".","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT. When transfer is complete, this function checks if `_to` is a smart contract (code size > 0). If so, it calls `onERC721Received` on `_to` and throws if the return value is not `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer","data":"Additional data with no specified format, sent in call to `_to`"}},"setApprovalForAll(address,bool)":{"details":"Emits the ApprovalForAll event. The contract MUST allow multiple operators per owner.","params":{"_approved":"True if the operator is approved, false to revoke approval","_operator":"Address to add to the set of authorized operators"}},"supportsInterface(bytes4)":{"details":"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.","params":{"interfaceID":"The interface identifier, as specified in ERC-165"},"returns":{"_0":"`true` if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, `false` otherwise"}},"tokenURI(uint256)":{"details":"Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC 3986. The URI may point to a JSON file that conforms to the \"ERC721 Metadata JSON Schema\"."},"transferFrom(address,address,uint256)":{"details":"Throws unless `msg.sender` is the current owner, an authorized operator, or the approved address for this NFT. Throws if `_from` is not the current owner. Throws if `_to` is the zero address. Throws if `_tokenId` is not a valid NFT.","params":{"_from":"The current owner of the NFT","_to":"The new owner","_tokenId":"The NFT to transfer"}}},"version":1},"userdoc":{"kind":"user","methods":{"approve(address,uint256)":{"notice":"Change or reaffirm the approved address for an NFT"},"balanceOf(address)":{"notice":"Count all NFTs assigned to an owner"},"getApproved(uint256)":{"notice":"Get the approved address for a single NFT"},"isApprovedForAll(address,address)":{"notice":"Query if an address is an authorized operator for another address"},"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"ownerOf(uint256)":{"notice":"Find the owner of an NFT"},"safeTransferFrom(address,address,uint256)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"safeTransferFrom(address,address,uint256,bytes)":{"notice":"Transfers the ownership of an NFT from one address to another address"},"setApprovalForAll(address,bool)":{"notice":"Enable or disable approval for a third party (\"operator\") to manage all of `msg.sender`'s assets"},"supportsInterface(bytes4)":{"notice":"Query if a contract implements an interface"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"},"tokenURI(uint256)":{"notice":"A distinct Uniform Resource Identifier (URI) for a given asset."},"transferFrom(address,address,uint256)":{"notice":"Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/interfaces/IERC721.sol":"IERC721Metadata"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/deployment/arb1/out/IERC721.sol/IERC721TokenReceiver.json b/deployment/arb1/out/IERC721.sol/IERC721TokenReceiver.json deleted file mode 100644 index e9f6cc4..0000000 --- a/deployment/arb1/out/IERC721.sol/IERC721TokenReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"_operator","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Note: the ERC-165 identifier for this interface is 0x150b7a02.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.\",\"params\":{\"_data\":\"Additional data with no specified format\",\"_from\":\"The address which previously owned the token\",\"_operator\":\"The address which called `safeTransferFrom` function\",\"_tokenId\":\"The NFT identifier which is being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))` unless throwing\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"notice\":\"Handle the receipt of an NFT\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/interfaces/IERC721.sol\":\"IERC721TokenReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{"onERC721Received(address,address,uint256,bytes)":{"details":"The ERC721 smart contract calls this function on the recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return of other than the magic value MUST result in the transaction being reverted. Note: the contract address is always the message sender.","params":{"_data":"Additional data with no specified format","_from":"The address which previously owned the token","_operator":"The address which called `safeTransferFrom` function","_tokenId":"The NFT identifier which is being transferred"},"returns":{"_0":"`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))` unless throwing"}}},"version":1},"userdoc":{"kind":"user","methods":{"onERC721Received(address,address,uint256,bytes)":{"notice":"Handle the receipt of an NFT"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/interfaces/IERC721.sol":"IERC721TokenReceiver"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"}},"version":1},"id":14} \ No newline at end of file diff --git a/deployment/arb1/out/IERC721Enumerable.sol/IERC721Enumerable.json b/deployment/arb1/out/IERC721Enumerable.sol/IERC721Enumerable.json deleted file mode 100644 index 906a663..0000000 --- a/deployment/arb1/out/IERC721Enumerable.sol/IERC721Enumerable.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":"IERC721Enumerable"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"}},"version":1},"id":25} \ No newline at end of file diff --git a/deployment/arb1/out/IERC721Metadata.sol/IERC721Metadata.json b/deployment/arb1/out/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 15b4302..0000000 --- a/deployment/arb1/out/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":"IERC721Metadata"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"}},"version":1},"id":26} \ No newline at end of file diff --git a/deployment/arb1/out/IERC721Permit.sol/IERC721Permit.json b/deployment/arb1/out/IERC721Permit.sol/IERC721Permit.json deleted file mode 100644 index 8a37571..0000000 --- a/deployment/arb1/out/IERC721Permit.sol/IERC721Permit.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"tokenId","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":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","permit(address,uint256,uint256,uint8,bytes32,bytes32)":"7ac2ff7b","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"The domain seperator used in encoding of permit signature\"}},\"PERMIT_TYPEHASH()\":{\"returns\":{\"_0\":\"The typehash for the permit\"}},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"deadline\":\"The deadline timestamp by which the call must be mined for the approve to work\",\"r\":\"Must produce valid secp256k1 signature from the holder along with `v` and `s`\",\"s\":\"Must produce valid secp256k1 signature from the holder along with `r` and `v`\",\"spender\":\"The account that is being approved\",\"tokenId\":\"The ID of the token that is being approved for spending\",\"v\":\"Must produce valid secp256k1 signature from the holder along with `r` and `s`\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC721 with permit\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"The domain separator used in the permit signature\"},\"PERMIT_TYPEHASH()\":{\"notice\":\"The permit typehash used in the permit signature\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Approve of a specific token ID for spending by spender via signature\"}},\"notice\":\"Extension to ERC721 that includes a permit function for signature based approvals\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":\"IERC721Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokenId","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":"payable","type":"function","name":"permit"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The domain seperator used in encoding of permit signature"}},"PERMIT_TYPEHASH()":{"returns":{"_0":"The typehash for the permit"}},"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"permit(address,uint256,uint256,uint8,bytes32,bytes32)":{"params":{"deadline":"The deadline timestamp by which the call must be mined for the approve to work","r":"Must produce valid secp256k1 signature from the holder along with `v` and `s`","s":"Must produce valid secp256k1 signature from the holder along with `r` and `v`","spender":"The account that is being approved","tokenId":"The ID of the token that is being approved for spending","v":"Must produce valid secp256k1 signature from the holder along with `r` and `s`"}},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"The domain separator used in the permit signature"},"PERMIT_TYPEHASH()":{"notice":"The permit typehash used in the permit signature"},"permit(address,uint256,uint256,uint8,bytes32,bytes32)":{"notice":"Approve of a specific token ID for spending by spender via signature"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":"IERC721Permit"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"}},"version":1},"id":43} \ No newline at end of file diff --git a/deployment/arb1/out/IFeeManager.sol/IFeeManager.json b/deployment/arb1/out/IFeeManager.sol/IFeeManager.json deleted file mode 100644 index a29c1c6..0000000 --- a/deployment/arb1/out/IFeeManager.sol/IFeeManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"adjuster","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fees","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"fillFeeAccount","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"gasFeeAccount","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"limits","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"orderFeeAccount","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"proposedFeeActivationTime","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"proposedFees","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"proposedLimitActivationTime","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"proposedLimits","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"stateMutability":"view"},{"type":"function","name":"setFeeAccounts","inputs":[{"name":"adjuster","type":"address","internalType":"address"},{"name":"fillFeeAccount","type":"address","internalType":"address payable"},{"name":"orderFeeAccount","type":"address","internalType":"address payable"},{"name":"gasFeeAccount","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFees","inputs":[{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimits","inputs":[{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"FeeLimitsChanged","inputs":[{"name":"limits","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"anonymous":false},{"type":"event","name":"FeeLimitsProposed","inputs":[{"name":"limits","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]},{"name":"activationTime","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"FeesChanged","inputs":[{"name":"fees","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"anonymous":false},{"type":"event","name":"FeesProposed","inputs":[{"name":"fees","type":"tuple","indexed":true,"internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]},{"name":"activationTime","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"adjuster()":"be989523","admin()":"f851a440","fees()":"9af1d35a","fillFeeAccount()":"ea43b36b","gasFeeAccount()":"1db89da1","limits()":"860aefcf","orderFeeAccount()":"ebd3cdcd","proposedFeeActivationTime()":"d0c683b1","proposedFees()":"f9828cff","proposedLimitActivationTime()":"6f7a2458","proposedLimits()":"57d1c53d","setFeeAccounts(address,address,address,address)":"ca7784cc","setFees((uint8,uint8,uint8,uint8,uint8))":"478c3b1a","setLimits((uint8,uint8,uint8,uint8,uint8))":"591cef8f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"limits\",\"type\":\"tuple\"}],\"name\":\"FeeLimitsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"limits\",\"type\":\"tuple\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"FeeLimitsProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"fees\",\"type\":\"tuple\"}],\"name\":\"FeesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"indexed\":true,\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"fees\",\"type\":\"tuple\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"FeesProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"adjuster\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fees\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fillFeeAccount\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasFeeAccount\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"orderFeeAccount\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedFeeActivationTime\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedFees\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedLimitActivationTime\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedLimits\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"adjuster\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"fillFeeAccount\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"orderFeeAccount\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"gasFeeAccount\",\"type\":\"address\"}],\"name\":\"setFeeAccounts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"setFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"setLimits\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interface/IFeeManager.sol\":\"IFeeManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"limits","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true}],"type":"event","name":"FeeLimitsChanged","anonymous":false},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"limits","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":true}],"type":"event","name":"FeeLimitsProposed","anonymous":false},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"fees","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true}],"type":"event","name":"FeesChanged","anonymous":false},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"fees","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}],"indexed":true},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":true}],"type":"event","name":"FeesProposed","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"adjuster","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fees","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fillFeeAccount","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasFeeAccount","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"limits","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"orderFeeAccount","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedFeeActivationTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedFees","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedLimitActivationTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedLimits","outputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}]},{"inputs":[{"internalType":"address","name":"adjuster","type":"address"},{"internalType":"address payable","name":"fillFeeAccount","type":"address"},{"internalType":"address payable","name":"orderFeeAccount","type":"address"},{"internalType":"address payable","name":"gasFeeAccount","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeAccounts"},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"setFees"},{"inputs":[{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimits"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interface/IFeeManager.sol":"IFeeManager"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null}},"version":1},"id":70} \ No newline at end of file diff --git a/deployment/arb1/out/IMulticall3.sol/IMulticall3.json b/deployment/arb1/out/IMulticall3.sol/IMulticall3.json deleted file mode 100644 index 4cd7532..0000000 --- a/deployment/arb1/out/IMulticall3.sol/IMulticall3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct IMulticall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct IMulticall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getLastBlockHash()":"27e86d6e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IMulticall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/interfaces/IMulticall3.sol\":\"IMulticall3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct IMulticall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct IMulticall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct IMulticall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"id":15} \ No newline at end of file diff --git a/deployment/arb1/out/INonfungiblePositionManager.sol/INonfungiblePositionManager.json b/deployment/arb1/out/INonfungiblePositionManager.sol/INonfungiblePositionManager.json deleted file mode 100644 index 8622cd4..0000000 --- a/deployment/arb1/out/INonfungiblePositionManager.sol/INonfungiblePositionManager.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"WETH9","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"collect","inputs":[{"name":"params","type":"tuple","internalType":"struct INonfungiblePositionManager.CollectParams","components":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount0Max","type":"uint128","internalType":"uint128"},{"name":"amount1Max","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"createAndInitializePoolIfNecessary","inputs":[{"name":"token0","type":"address","internalType":"address"},{"name":"token1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"pool","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"decreaseLiquidity","inputs":[{"name":"params","type":"tuple","internalType":"struct INonfungiblePositionManager.DecreaseLiquidityParams","components":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint128","internalType":"uint128"},{"name":"amount0Min","type":"uint256","internalType":"uint256"},{"name":"amount1Min","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"operator","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"increaseLiquidity","inputs":[{"name":"params","type":"tuple","internalType":"struct INonfungiblePositionManager.IncreaseLiquidityParams","components":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"amount0Desired","type":"uint256","internalType":"uint256"},{"name":"amount1Desired","type":"uint256","internalType":"uint256"},{"name":"amount0Min","type":"uint256","internalType":"uint256"},{"name":"amount1Min","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"liquidity","type":"uint128","internalType":"uint128"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"params","type":"tuple","internalType":"struct INonfungiblePositionManager.MintParams","components":[{"name":"token0","type":"address","internalType":"address"},{"name":"token1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"amount0Desired","type":"uint256","internalType":"uint256"},{"name":"amount1Desired","type":"uint256","internalType":"uint256"},{"name":"amount0Min","type":"uint256","internalType":"uint256"},{"name":"amount1Min","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint128","internalType":"uint128"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"tokenId","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":"payable"},{"type":"function","name":"positions","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"nonce","type":"uint96","internalType":"uint96"},{"name":"operator","type":"address","internalType":"address"},{"name":"token0","type":"address","internalType":"address"},{"name":"token1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidity","type":"uint128","internalType":"uint128"},{"name":"feeGrowthInside0LastX128","type":"uint256","internalType":"uint256"},{"name":"feeGrowthInside1LastX128","type":"uint256","internalType":"uint256"},{"name":"tokensOwed0","type":"uint128","internalType":"uint128"},{"name":"tokensOwed1","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"refundETH","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"sweepToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountMinimum","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unwrapWETH9","inputs":[{"name":"amountMinimum","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Collect","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DecreaseLiquidity","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"liquidity","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IncreaseLiquidity","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"liquidity","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","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":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","WETH9()":"4aa4a4fc","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","collect((uint256,address,uint128,uint128))":"fc6f7865","createAndInitializePoolIfNecessary(address,address,uint24,uint160)":"13ead562","decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))":"0c49ccbe","factory()":"c45a0155","getApproved(uint256)":"081812fc","increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))":"219f5d17","isApprovedForAll(address,address)":"e985e9c5","mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))":"88316456","name()":"06fdde03","ownerOf(uint256)":"6352211e","permit(address,uint256,uint256,uint8,bytes32,bytes32)":"7ac2ff7b","positions(uint256)":"99fbab88","refundETH()":"12210e8a","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","sweepToken(address,uint256,address)":"df2ab5bb","symbol()":"95d89b41","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","unwrapWETH9(uint256,address)":"49404b7c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"DecreaseLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"IncreaseLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH9\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Max\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Max\",\"type\":\"uint128\"}],\"internalType\":\"struct INonfungiblePositionManager.CollectParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"createAndInitializePoolIfNecessary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct INonfungiblePositionManager.DecreaseLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"decreaseLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct INonfungiblePositionManager.IncreaseLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"increaseLiquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint256\",\"name\":\"amount0Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount0Min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Min\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct INonfungiblePositionManager.MintParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"nonce\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"refundETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"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\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"unwrapWETH9\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Collect(uint256,address,uint256,uint256)\":{\"details\":\"The amounts reported may not be exactly equivalent to the amounts transferred, due to rounding behavior\",\"params\":{\"amount0\":\"The amount of token0 owed to the position that was collected\",\"amount1\":\"The amount of token1 owed to the position that was collected\",\"recipient\":\"The address of the account that received the collected tokens\",\"tokenId\":\"The ID of the token for which underlying tokens were collected\"}},\"DecreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"params\":{\"amount0\":\"The amount of token0 that was accounted for the decrease in liquidity\",\"amount1\":\"The amount of token1 that was accounted for the decrease in liquidity\",\"liquidity\":\"The amount by which liquidity for the NFT position was decreased\",\"tokenId\":\"The ID of the token for which liquidity was decreased\"}},\"IncreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"details\":\"Also emitted when a token is minted\",\"params\":{\"amount0\":\"The amount of token0 that was paid for the increase in liquidity\",\"amount1\":\"The amount of token1 that was paid for the increase in liquidity\",\"liquidity\":\"The amount by which liquidity for the NFT position was increased\",\"tokenId\":\"The ID of the token for which liquidity was increased\"}},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"The domain seperator used in encoding of permit signature\"}},\"PERMIT_TYPEHASH()\":{\"returns\":{\"_0\":\"The typehash for the permit\"}},\"WETH9()\":{\"returns\":{\"_0\":\"Returns the address of WETH9\"}},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"burn(uint256)\":{\"params\":{\"tokenId\":\"The ID of the token that is being burned\"}},\"collect((uint256,address,uint128,uint128))\":{\"params\":{\"params\":\"tokenId The ID of the NFT for which tokens are being collected, recipient The account that should receive the tokens, amount0Max The maximum amount of token0 to collect, amount1Max The maximum amount of token1 to collect\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"details\":\"This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\",\"params\":{\"fee\":\"The fee amount of the v3 pool for the specified token pair\",\"sqrtPriceX96\":\"The initial square root price of the pool as a Q64.96 value\",\"token0\":\"The contract address of token0 of the pool\",\"token1\":\"The contract address of token1 of the pool\"},\"returns\":{\"pool\":\"Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary\"}},\"decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))\":{\"params\":{\"params\":\"tokenId The ID of the token for which liquidity is being decreased, amount The amount by which liquidity will be decreased, amount0Min The minimum amount of token0 that should be accounted for the burned liquidity, amount1Min The minimum amount of token1 that should be accounted for the burned liquidity, deadline The time by which the transaction must be included to effect the change\"},\"returns\":{\"amount0\":\"The amount of token0 accounted to the position's tokens owed\",\"amount1\":\"The amount of token1 accounted to the position's tokens owed\"}},\"factory()\":{\"returns\":{\"_0\":\"Returns the address of the Uniswap V3 factory\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))\":{\"params\":{\"params\":\"tokenId The ID of the token for which liquidity is being increased, amount0Desired The desired amount of token0 to be spent, amount1Desired The desired amount of token1 to be spent, amount0Min The minimum amount of token0 to spend, which serves as a slippage check, amount1Min The minimum amount of token1 to spend, which serves as a slippage check, deadline The time by which the transaction must be included to effect the change\"},\"returns\":{\"amount0\":\"The amount of token0 to acheive resulting liquidity\",\"amount1\":\"The amount of token1 to acheive resulting liquidity\",\"liquidity\":\"The new liquidity amount as a result of the increase\"}},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))\":{\"details\":\"Call this when the pool does exist and is initialized. Note that if the pool is created but not initialized a method does not exist, i.e. the pool is assumed to be initialized.\",\"params\":{\"params\":\"The params necessary to mint a position, encoded as `MintParams` in calldata\"},\"returns\":{\"amount0\":\"The amount of token0\",\"amount1\":\"The amount of token1\",\"liquidity\":\"The amount of liquidity for this position\",\"tokenId\":\"The ID of the token that represents the minted position\"}},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"deadline\":\"The deadline timestamp by which the call must be mined for the approve to work\",\"r\":\"Must produce valid secp256k1 signature from the holder along with `v` and `s`\",\"s\":\"Must produce valid secp256k1 signature from the holder along with `r` and `v`\",\"spender\":\"The account that is being approved\",\"tokenId\":\"The ID of the token that is being approved for spending\",\"v\":\"Must produce valid secp256k1 signature from the holder along with `r` and `s`\"}},\"positions(uint256)\":{\"details\":\"Throws if the token ID is not valid.\",\"params\":{\"tokenId\":\"The ID of the token that represents the position\"},\"returns\":{\"fee\":\"The fee associated with the pool\",\"feeGrowthInside0LastX128\":\"The fee growth of token0 as of the last action on the individual position\",\"feeGrowthInside1LastX128\":\"The fee growth of token1 as of the last action on the individual position\",\"liquidity\":\"The liquidity of the position\",\"nonce\":\"The nonce for permits\",\"operator\":\"The address that is approved for spending\",\"tickLower\":\"The lower end of the tick range for the position\",\"tickUpper\":\"The higher end of the tick range for the position\",\"token0\":\"The address of the token0 for a specific pool\",\"token1\":\"The address of the token1 for a specific pool\",\"tokensOwed0\":\"The uncollected amount of token0 owed to the position as of the last computation\",\"tokensOwed1\":\"The uncollected amount of token1 owed to the position as of the last computation\"}},\"refundETH()\":{\"details\":\"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"sweepToken(address,uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing the token from users\",\"params\":{\"amountMinimum\":\"The minimum amount of token required for a transfer\",\"recipient\":\"The destination address of the token\",\"token\":\"The contract address of the token which will be transferred to `recipient`\"}},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"},\"unwrapWETH9(uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\",\"params\":{\"amountMinimum\":\"The minimum amount of WETH9 to unwrap\",\"recipient\":\"The address receiving ETH\"}}},\"title\":\"Non-fungible token for positions\",\"version\":1},\"userdoc\":{\"events\":{\"Collect(uint256,address,uint256,uint256)\":{\"notice\":\"Emitted when tokens are collected for a position NFT\"},\"DecreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is decreased for a position NFT\"},\"IncreaseLiquidity(uint256,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is increased for a position NFT\"}},\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"The domain separator used in the permit signature\"},\"PERMIT_TYPEHASH()\":{\"notice\":\"The permit typehash used in the permit signature\"},\"burn(uint256)\":{\"notice\":\"Burns a token ID, which deletes it from the NFT contract. The token must have 0 liquidity and all tokens must be collected first.\"},\"collect((uint256,address,uint128,uint128))\":{\"notice\":\"Collects up to a maximum amount of fees owed to a specific position to the recipient\"},\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"notice\":\"Creates a new pool if it does not exist, then initializes if not initialized\"},\"decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))\":{\"notice\":\"Decreases the amount of liquidity in a position and accounts it to the position\"},\"increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))\":{\"notice\":\"Increases the amount of liquidity in a position, with tokens paid by the `msg.sender`\"},\"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))\":{\"notice\":\"Creates a new position wrapped in a NFT\"},\"permit(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Approve of a specific token ID for spending by spender via signature\"},\"positions(uint256)\":{\"notice\":\"Returns the position information associated with a given token ID.\"},\"refundETH()\":{\"notice\":\"Refunds any ETH balance held by this contract to the `msg.sender`\"},\"sweepToken(address,uint256,address)\":{\"notice\":\"Transfers the full amount of a token held by this contract to recipient\"},\"unwrapWETH9(uint256,address)\":{\"notice\":\"Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\"}},\"notice\":\"Wraps Uniswap V3 positions in a non-fungible token interface which allows for them to be transferred and authorized.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":\"INonfungiblePositionManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Collect","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint128","name":"liquidity","type":"uint128","indexed":false},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"DecreaseLiquidity","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint128","name":"liquidity","type":"uint128","indexed":false},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"IncreaseLiquidity","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WETH9","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"burn"},{"inputs":[{"internalType":"struct INonfungiblePositionManager.CollectParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Max","type":"uint128"},{"internalType":"uint128","name":"amount1Max","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"collect","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"payable","type":"function","name":"createAndInitializePoolIfNecessary","outputs":[{"internalType":"address","name":"pool","type":"address"}]},{"inputs":[{"internalType":"struct INonfungiblePositionManager.DecreaseLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"decreaseLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}]},{"inputs":[{"internalType":"struct INonfungiblePositionManager.IncreaseLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"increaseLiquidity","outputs":[{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct INonfungiblePositionManager.MintParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint256","name":"amount0Desired","type":"uint256"},{"internalType":"uint256","name":"amount1Desired","type":"uint256"},{"internalType":"uint256","name":"amount0Min","type":"uint256"},{"internalType":"uint256","name":"amount1Min","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokenId","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":"payable","type":"function","name":"permit"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"positions","outputs":[{"internalType":"uint96","name":"nonce","type":"uint96"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"refundETH"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"sweepToken"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"unwrapWETH9"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The domain seperator used in encoding of permit signature"}},"PERMIT_TYPEHASH()":{"returns":{"_0":"The typehash for the permit"}},"WETH9()":{"returns":{"_0":"Returns the address of WETH9"}},"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the number of tokens in ``owner``'s account."},"burn(uint256)":{"params":{"tokenId":"The ID of the token that is being burned"}},"collect((uint256,address,uint128,uint128))":{"params":{"params":"tokenId The ID of the NFT for which tokens are being collected, recipient The account that should receive the tokens, amount0Max The maximum amount of token0 to collect, amount1Max The maximum amount of token1 to collect"},"returns":{"amount0":"The amount of fees collected in token0","amount1":"The amount of fees collected in token1"}},"createAndInitializePoolIfNecessary(address,address,uint24,uint160)":{"details":"This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool","params":{"fee":"The fee amount of the v3 pool for the specified token pair","sqrtPriceX96":"The initial square root price of the pool as a Q64.96 value","token0":"The contract address of token0 of the pool","token1":"The contract address of token1 of the pool"},"returns":{"pool":"Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary"}},"decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))":{"params":{"params":"tokenId The ID of the token for which liquidity is being decreased, amount The amount by which liquidity will be decreased, amount0Min The minimum amount of token0 that should be accounted for the burned liquidity, amount1Min The minimum amount of token1 that should be accounted for the burned liquidity, deadline The time by which the transaction must be included to effect the change"},"returns":{"amount0":"The amount of token0 accounted to the position's tokens owed","amount1":"The amount of token1 accounted to the position's tokens owed"}},"factory()":{"returns":{"_0":"Returns the address of the Uniswap V3 factory"}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))":{"params":{"params":"tokenId The ID of the token for which liquidity is being increased, amount0Desired The desired amount of token0 to be spent, amount1Desired The desired amount of token1 to be spent, amount0Min The minimum amount of token0 to spend, which serves as a slippage check, amount1Min The minimum amount of token1 to spend, which serves as a slippage check, deadline The time by which the transaction must be included to effect the change"},"returns":{"amount0":"The amount of token0 to acheive resulting liquidity","amount1":"The amount of token1 to acheive resulting liquidity","liquidity":"The new liquidity amount as a result of the increase"}},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}"},"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))":{"details":"Call this when the pool does exist and is initialized. Note that if the pool is created but not initialized a method does not exist, i.e. the pool is assumed to be initialized.","params":{"params":"The params necessary to mint a position, encoded as `MintParams` in calldata"},"returns":{"amount0":"The amount of token0","amount1":"The amount of token1","liquidity":"The amount of liquidity for this position","tokenId":"The ID of the token that represents the minted position"}},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"permit(address,uint256,uint256,uint8,bytes32,bytes32)":{"params":{"deadline":"The deadline timestamp by which the call must be mined for the approve to work","r":"Must produce valid secp256k1 signature from the holder along with `v` and `s`","s":"Must produce valid secp256k1 signature from the holder along with `r` and `v`","spender":"The account that is being approved","tokenId":"The ID of the token that is being approved for spending","v":"Must produce valid secp256k1 signature from the holder along with `r` and `s`"}},"positions(uint256)":{"details":"Throws if the token ID is not valid.","params":{"tokenId":"The ID of the token that represents the position"},"returns":{"fee":"The fee associated with the pool","feeGrowthInside0LastX128":"The fee growth of token0 as of the last action on the individual position","feeGrowthInside1LastX128":"The fee growth of token1 as of the last action on the individual position","liquidity":"The liquidity of the position","nonce":"The nonce for permits","operator":"The address that is approved for spending","tickLower":"The lower end of the tick range for the position","tickUpper":"The higher end of the tick range for the position","token0":"The address of the token0 for a specific pool","token1":"The address of the token1 for a specific pool","tokensOwed0":"The uncollected amount of token0 owed to the position as of the last computation","tokensOwed1":"The uncollected amount of token1 owed to the position as of the last computation"}},"refundETH()":{"details":"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount"},"safeTransferFrom(address,address,uint256)":{"details":"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event."},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"sweepToken(address,uint256,address)":{"details":"The amountMinimum parameter prevents malicious contracts from stealing the token from users","params":{"amountMinimum":"The minimum amount of token required for a transfer","recipient":"The destination address of the token","token":"The contract address of the token which will be transferred to `recipient`"}},"symbol()":{"details":"Returns the token collection symbol."},"tokenByIndex(uint256)":{"details":"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens."},"tokenOfOwnerByIndex(address,uint256)":{"details":"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total amount of tokens stored by the contract."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."},"unwrapWETH9(uint256,address)":{"details":"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.","params":{"amountMinimum":"The minimum amount of WETH9 to unwrap","recipient":"The address receiving ETH"}}},"version":1},"userdoc":{"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"The domain separator used in the permit signature"},"PERMIT_TYPEHASH()":{"notice":"The permit typehash used in the permit signature"},"burn(uint256)":{"notice":"Burns a token ID, which deletes it from the NFT contract. The token must have 0 liquidity and all tokens must be collected first."},"collect((uint256,address,uint128,uint128))":{"notice":"Collects up to a maximum amount of fees owed to a specific position to the recipient"},"createAndInitializePoolIfNecessary(address,address,uint24,uint160)":{"notice":"Creates a new pool if it does not exist, then initializes if not initialized"},"decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))":{"notice":"Decreases the amount of liquidity in a position and accounts it to the position"},"increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))":{"notice":"Increases the amount of liquidity in a position, with tokens paid by the `msg.sender`"},"mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))":{"notice":"Creates a new position wrapped in a NFT"},"permit(address,uint256,uint256,uint8,bytes32,bytes32)":{"notice":"Approve of a specific token ID for spending by spender via signature"},"positions(uint256)":{"notice":"Returns the position information associated with a given token ID."},"refundETH()":{"notice":"Refunds any ETH balance held by this contract to the `msg.sender`"},"sweepToken(address,uint256,address)":{"notice":"Transfers the full amount of a token held by this contract to recipient"},"unwrapWETH9(uint256,address)":{"notice":"Unwraps the contract's WETH9 balance and sends it to recipient as ETH."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":"INonfungiblePositionManager"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"}},"version":1},"id":44} \ No newline at end of file diff --git a/deployment/arb1/out/IPeripheryImmutableState.sol/IPeripheryImmutableState.json b/deployment/arb1/out/IPeripheryImmutableState.sol/IPeripheryImmutableState.json deleted file mode 100644 index 7061b82..0000000 --- a/deployment/arb1/out/IPeripheryImmutableState.sol/IPeripheryImmutableState.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"WETH9","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"WETH9()":"4aa4a4fc","factory()":"c45a0155"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"WETH9\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"WETH9()\":{\"returns\":{\"_0\":\"Returns the address of WETH9\"}},\"factory()\":{\"returns\":{\"_0\":\"Returns the address of the Uniswap V3 factory\"}}},\"title\":\"Immutable state\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Functions that return immutable state of the router\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":\"IPeripheryImmutableState\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"WETH9","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"WETH9()":{"returns":{"_0":"Returns the address of WETH9"}},"factory()":{"returns":{"_0":"Returns the address of the Uniswap V3 factory"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":"IPeripheryImmutableState"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"}},"version":1},"id":45} \ No newline at end of file diff --git a/deployment/arb1/out/IPeripheryPayments.sol/IPeripheryPayments.json b/deployment/arb1/out/IPeripheryPayments.sol/IPeripheryPayments.json deleted file mode 100644 index db638f9..0000000 --- a/deployment/arb1/out/IPeripheryPayments.sol/IPeripheryPayments.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"refundETH","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sweepToken","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amountMinimum","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"unwrapWETH9","inputs":[{"name":"amountMinimum","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"refundETH()":"12210e8a","sweepToken(address,uint256,address)":"df2ab5bb","unwrapWETH9(uint256,address)":"49404b7c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"refundETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"unwrapWETH9\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"refundETH()\":{\"details\":\"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount\"},\"sweepToken(address,uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing the token from users\",\"params\":{\"amountMinimum\":\"The minimum amount of token required for a transfer\",\"recipient\":\"The destination address of the token\",\"token\":\"The contract address of the token which will be transferred to `recipient`\"}},\"unwrapWETH9(uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\",\"params\":{\"amountMinimum\":\"The minimum amount of WETH9 to unwrap\",\"recipient\":\"The address receiving ETH\"}}},\"title\":\"Periphery Payments\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"refundETH()\":{\"notice\":\"Refunds any ETH balance held by this contract to the `msg.sender`\"},\"sweepToken(address,uint256,address)\":{\"notice\":\"Transfers the full amount of a token held by this contract to recipient\"},\"unwrapWETH9(uint256,address)\":{\"notice\":\"Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\"}},\"notice\":\"Functions to ease deposits and withdrawals of ETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":\"IPeripheryPayments\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"refundETH"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"sweepToken"},{"inputs":[{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"payable","type":"function","name":"unwrapWETH9"}],"devdoc":{"kind":"dev","methods":{"refundETH()":{"details":"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount"},"sweepToken(address,uint256,address)":{"details":"The amountMinimum parameter prevents malicious contracts from stealing the token from users","params":{"amountMinimum":"The minimum amount of token required for a transfer","recipient":"The destination address of the token","token":"The contract address of the token which will be transferred to `recipient`"}},"unwrapWETH9(uint256,address)":{"details":"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.","params":{"amountMinimum":"The minimum amount of WETH9 to unwrap","recipient":"The address receiving ETH"}}},"version":1},"userdoc":{"kind":"user","methods":{"refundETH()":{"notice":"Refunds any ETH balance held by this contract to the `msg.sender`"},"sweepToken(address,uint256,address)":{"notice":"Transfers the full amount of a token held by this contract to recipient"},"unwrapWETH9(uint256,address)":{"notice":"Unwraps the contract's WETH9 balance and sends it to recipient as ETH."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":"IPeripheryPayments"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"}},"version":1},"id":46} \ No newline at end of file diff --git a/deployment/arb1/out/IPoolInitializer.sol/IPoolInitializer.json b/deployment/arb1/out/IPoolInitializer.sol/IPoolInitializer.json deleted file mode 100644 index e853ccb..0000000 --- a/deployment/arb1/out/IPoolInitializer.sol/IPoolInitializer.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"createAndInitializePoolIfNecessary","inputs":[{"name":"token0","type":"address","internalType":"address"},{"name":"token1","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"pool","type":"address","internalType":"address"}],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createAndInitializePoolIfNecessary(address,address,uint24,uint160)":"13ead562"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"createAndInitializePoolIfNecessary\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"details\":\"This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool\",\"params\":{\"fee\":\"The fee amount of the v3 pool for the specified token pair\",\"sqrtPriceX96\":\"The initial square root price of the pool as a Q64.96 value\",\"token0\":\"The contract address of token0 of the pool\",\"token1\":\"The contract address of token1 of the pool\"},\"returns\":{\"pool\":\"Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary\"}}},\"title\":\"Creates and initializes V3 Pools\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createAndInitializePoolIfNecessary(address,address,uint24,uint160)\":{\"notice\":\"Creates a new pool if it does not exist, then initializes if not initialized\"}},\"notice\":\"Provides a method for creating and initializing a pool, if necessary, for bundling with other methods that require the pool to exist.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":\"IPoolInitializer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"payable","type":"function","name":"createAndInitializePoolIfNecessary","outputs":[{"internalType":"address","name":"pool","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"createAndInitializePoolIfNecessary(address,address,uint24,uint160)":{"details":"This method can be bundled with others via IMulticall for the first action (e.g. mint) performed against a pool","params":{"fee":"The fee amount of the v3 pool for the specified token pair","sqrtPriceX96":"The initial square root price of the pool as a Q64.96 value","token0":"The contract address of token0 of the pool","token1":"The contract address of token1 of the pool"},"returns":{"pool":"Returns the pool address based on the pair of tokens and fee, will return the newly created pool address if necessary"}}},"version":1},"userdoc":{"kind":"user","methods":{"createAndInitializePoolIfNecessary(address,address,uint24,uint160)":{"notice":"Creates a new pool if it does not exist, then initializes if not initialized"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":"IPoolInitializer"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"}},"version":1},"id":47} \ No newline at end of file diff --git a/deployment/arb1/out/IRouter.sol/IRouter.json b/deployment/arb1/out/IRouter.sol/IRouter.json deleted file mode 100644 index c000df3..0000000 --- a/deployment/arb1/out/IRouter.sol/IRouter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"protectedPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"rawPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"params","type":"tuple","internalType":"struct IRouter.SwapParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"limitPriceX96","type":"uint256","internalType":"uint256"},{"name":"maxFee","type":"uint24","internalType":"uint24"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"protectedPrice(uint8,address,address,uint24)":"77aa2cd1","rawPrice(uint8,address,address,uint24)":"4f78bfff","swap(uint8,(address,address,address,uint256,uint256,bool,uint256,uint24))":"90b54f08"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"protectedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"rawPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"limitPriceX96\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"internalType\":\"struct IRouter.SwapParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interface/IRouter.sol\":\"IRouter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"protectedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"rawPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"struct IRouter.SwapParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"uint256","name":"limitPriceX96","type":"uint256"},{"internalType":"uint24","name":"maxFee","type":"uint24"}]}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interface/IRouter.sol":"IRouter"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null}},"version":1},"id":71} \ No newline at end of file diff --git a/deployment/arb1/out/ISwapRouter.sol/ISwapRouter.json b/deployment/arb1/out/ISwapRouter.sol/ISwapRouter.json deleted file mode 100644 index 94bf4fd..0000000 --- a/deployment/arb1/out/ISwapRouter.sol/ISwapRouter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"exactInput","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactInputParams","components":[{"name":"path","type":"bytes","internalType":"bytes"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMinimum","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"exactInputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactInputSingleParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMinimum","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"exactOutput","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactOutputParams","components":[{"name":"path","type":"bytes","internalType":"bytes"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMaximum","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"exactOutputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactOutputSingleParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMaximum","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"uniswapV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"exactInput((bytes,address,uint256,uint256,uint256))":"c04b8d59","exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))":"414bf389","exactOutput((bytes,address,uint256,uint256,uint256))":"f28c0498","exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))":"db3e2198","uniswapV3SwapCallback(int256,int256,bytes)":"fa461e33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMinimum\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapRouter.ExactInputParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMinimum\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct ISwapRouter.ExactInputSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactInputSingle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMaximum\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapRouter.ExactOutputParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMaximum\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct ISwapRouter.ExactOutputSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactOutputSingle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"amount0Delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1Delta\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3SwapCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"exactInput((bytes,address,uint256,uint256,uint256))\":{\"params\":{\"params\":\"The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata\"},\"returns\":{\"amountOut\":\"The amount of the received token\"}},\"exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"params\":{\"params\":\"The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata\"},\"returns\":{\"amountOut\":\"The amount of the received token\"}},\"exactOutput((bytes,address,uint256,uint256,uint256))\":{\"params\":{\"params\":\"The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata\"},\"returns\":{\"amountIn\":\"The amount of the input token\"}},\"exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"params\":{\"params\":\"The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata\"},\"returns\":{\"amountIn\":\"The amount of the input token\"}},\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"details\":\"In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.\",\"params\":{\"amount0Delta\":\"The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.\",\"amount1Delta\":\"The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.\",\"data\":\"Any data passed through by the caller via the IUniswapV3PoolActions#swap call\"}}},\"title\":\"Router token swapping functionality\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"exactInput((bytes,address,uint256,uint256,uint256))\":{\"notice\":\"Swaps `amountIn` of one token for as much as possible of another along the specified path\"},\"exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"notice\":\"Swaps `amountIn` of one token for as much as possible of another token\"},\"exactOutput((bytes,address,uint256,uint256,uint256))\":{\"notice\":\"Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)\"},\"exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"notice\":\"Swaps as little as possible of one token for `amountOut` of another token\"},\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"notice\":\"Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.\"}},\"notice\":\"Functions for swapping tokens via Uniswap V3\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":\"ISwapRouter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct ISwapRouter.ExactInputParams","name":"params","type":"tuple","components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"exactInput","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"struct ISwapRouter.ExactInputSingleParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]}],"stateMutability":"payable","type":"function","name":"exactInputSingle","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"struct ISwapRouter.ExactOutputParams","name":"params","type":"tuple","components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"exactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"struct ISwapRouter.ExactOutputSingleParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]}],"stateMutability":"payable","type":"function","name":"exactOutputSingle","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}]},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV3SwapCallback"}],"devdoc":{"kind":"dev","methods":{"exactInput((bytes,address,uint256,uint256,uint256))":{"params":{"params":"The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata"},"returns":{"amountOut":"The amount of the received token"}},"exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))":{"params":{"params":"The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata"},"returns":{"amountOut":"The amount of the received token"}},"exactOutput((bytes,address,uint256,uint256,uint256))":{"params":{"params":"The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata"},"returns":{"amountIn":"The amount of the input token"}},"exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))":{"params":{"params":"The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata"},"returns":{"amountIn":"The amount of the input token"}},"uniswapV3SwapCallback(int256,int256,bytes)":{"details":"In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.","params":{"amount0Delta":"The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.","amount1Delta":"The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.","data":"Any data passed through by the caller via the IUniswapV3PoolActions#swap call"}}},"version":1},"userdoc":{"kind":"user","methods":{"exactInput((bytes,address,uint256,uint256,uint256))":{"notice":"Swaps `amountIn` of one token for as much as possible of another along the specified path"},"exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))":{"notice":"Swaps `amountIn` of one token for as much as possible of another token"},"exactOutput((bytes,address,uint256,uint256,uint256))":{"notice":"Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)"},"exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))":{"notice":"Swaps as little as possible of one token for `amountOut` of another token"},"uniswapV3SwapCallback(int256,int256,bytes)":{"notice":"Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":"ISwapRouter"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"}},"version":1},"id":48} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3Factory.sol/IUniswapV3Factory.json b/deployment/arb1/out/IUniswapV3Factory.sol/IUniswapV3Factory.json deleted file mode 100644 index 7f66da7..0000000 --- a/deployment/arb1/out/IUniswapV3Factory.sol/IUniswapV3Factory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"createPool","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"pool","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableFeeAmount","inputs":[{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeAmountTickSpacing","inputs":[{"name":"fee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"int24","internalType":"int24"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"pool","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"FeeAmountEnabled","inputs":[{"name":"fee","type":"uint24","indexed":true,"internalType":"uint24"},{"name":"tickSpacing","type":"int24","indexed":true,"internalType":"int24"}],"anonymous":false},{"type":"event","name":"OwnerChanged","inputs":[{"name":"oldOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"token0","type":"address","indexed":true,"internalType":"address"},{"name":"token1","type":"address","indexed":true,"internalType":"address"},{"name":"fee","type":"uint24","indexed":true,"internalType":"uint24"},{"name":"tickSpacing","type":"int24","indexed":false,"internalType":"int24"},{"name":"pool","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createPool(address,address,uint24)":"a1671295","enableFeeAmount(uint24,int24)":"8a7c195f","feeAmountTickSpacing(uint24)":"22afcccb","getPool(address,address,uint24)":"1698ee82","owner()":"8da5cb5b","setOwner(address)":"13af4035"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"FeeAmountEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"name\":\"enableFeeAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"feeAmountTickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"FeeAmountEnabled(uint24,int24)\":{\"params\":{\"fee\":\"The enabled fee, denominated in hundredths of a bip\",\"tickSpacing\":\"The minimum number of ticks between initialized ticks for pools created with the given fee\"}},\"OwnerChanged(address,address)\":{\"params\":{\"newOwner\":\"The owner after the owner was changed\",\"oldOwner\":\"The owner before the owner was changed\"}},\"PoolCreated(address,address,uint24,int24,address)\":{\"params\":{\"fee\":\"The fee collected upon every swap in the pool, denominated in hundredths of a bip\",\"pool\":\"The address of the created pool\",\"tickSpacing\":\"The minimum number of ticks between initialized ticks\",\"token0\":\"The first token of the pool by address sort order\",\"token1\":\"The second token of the pool by address sort order\"}}},\"kind\":\"dev\",\"methods\":{\"createPool(address,address,uint24)\":{\"details\":\"tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments are invalid.\",\"params\":{\"fee\":\"The desired fee for the pool\",\"tokenA\":\"One of the two tokens in the desired pool\",\"tokenB\":\"The other of the two tokens in the desired pool\"},\"returns\":{\"pool\":\"The address of the newly created pool\"}},\"enableFeeAmount(uint24,int24)\":{\"details\":\"Fee amounts may never be removed once enabled\",\"params\":{\"fee\":\"The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)\",\"tickSpacing\":\"The spacing between ticks to be enforced for all pools created with the given fee amount\"}},\"feeAmountTickSpacing(uint24)\":{\"details\":\"A fee amount can never be removed, so this value should be hard coded or cached in the calling context\",\"params\":{\"fee\":\"The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee\"},\"returns\":{\"_0\":\"The tick spacing\"}},\"getPool(address,address,uint24)\":{\"details\":\"tokenA and tokenB may be passed in either token0/token1 or token1/token0 order\",\"params\":{\"fee\":\"The fee collected upon every swap in the pool, denominated in hundredths of a bip\",\"tokenA\":\"The contract address of either token0 or token1\",\"tokenB\":\"The contract address of the other token\"},\"returns\":{\"pool\":\"The pool address\"}},\"owner()\":{\"details\":\"Can be changed by the current owner via setOwner\",\"returns\":{\"_0\":\"The address of the factory owner\"}},\"setOwner(address)\":{\"details\":\"Must be called by the current owner\",\"params\":{\"_owner\":\"The new owner of the factory\"}}},\"title\":\"The interface for the Uniswap V3 Factory\",\"version\":1},\"userdoc\":{\"events\":{\"FeeAmountEnabled(uint24,int24)\":{\"notice\":\"Emitted when a new fee amount is enabled for pool creation via the factory\"},\"OwnerChanged(address,address)\":{\"notice\":\"Emitted when the owner of the factory is changed\"},\"PoolCreated(address,address,uint24,int24,address)\":{\"notice\":\"Emitted when a pool is created\"}},\"kind\":\"user\",\"methods\":{\"createPool(address,address,uint24)\":{\"notice\":\"Creates a pool for the given two tokens and fee\"},\"enableFeeAmount(uint24,int24)\":{\"notice\":\"Enables a fee amount with the given tickSpacing\"},\"feeAmountTickSpacing(uint24)\":{\"notice\":\"Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled\"},\"getPool(address,address,uint24)\":{\"notice\":\"Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist\"},\"owner()\":{\"notice\":\"Returns the current owner of the factory\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of the factory\"}},\"notice\":\"The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":\"IUniswapV3Factory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24","indexed":true},{"internalType":"int24","name":"tickSpacing","type":"int24","indexed":true}],"type":"event","name":"FeeAmountEnabled","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"token0","type":"address","indexed":true},{"internalType":"address","name":"token1","type":"address","indexed":true},{"internalType":"uint24","name":"fee","type":"uint24","indexed":true},{"internalType":"int24","name":"tickSpacing","type":"int24","indexed":false},{"internalType":"address","name":"pool","type":"address","indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"address","name":"pool","type":"address"}]},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"enableFeeAmount"},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"stateMutability":"view","type":"function","name":"feeAmountTickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"address","name":"pool","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"}],"devdoc":{"kind":"dev","methods":{"createPool(address,address,uint24)":{"details":"tokenA and tokenB may be passed in either order: token0/token1 or token1/token0. tickSpacing is retrieved from the fee. The call will revert if the pool already exists, the fee is invalid, or the token arguments are invalid.","params":{"fee":"The desired fee for the pool","tokenA":"One of the two tokens in the desired pool","tokenB":"The other of the two tokens in the desired pool"},"returns":{"pool":"The address of the newly created pool"}},"enableFeeAmount(uint24,int24)":{"details":"Fee amounts may never be removed once enabled","params":{"fee":"The fee amount to enable, denominated in hundredths of a bip (i.e. 1e-6)","tickSpacing":"The spacing between ticks to be enforced for all pools created with the given fee amount"}},"feeAmountTickSpacing(uint24)":{"details":"A fee amount can never be removed, so this value should be hard coded or cached in the calling context","params":{"fee":"The enabled fee, denominated in hundredths of a bip. Returns 0 in case of unenabled fee"},"returns":{"_0":"The tick spacing"}},"getPool(address,address,uint24)":{"details":"tokenA and tokenB may be passed in either token0/token1 or token1/token0 order","params":{"fee":"The fee collected upon every swap in the pool, denominated in hundredths of a bip","tokenA":"The contract address of either token0 or token1","tokenB":"The contract address of the other token"},"returns":{"pool":"The pool address"}},"owner()":{"details":"Can be changed by the current owner via setOwner","returns":{"_0":"The address of the factory owner"}},"setOwner(address)":{"details":"Must be called by the current owner","params":{"_owner":"The new owner of the factory"}}},"version":1},"userdoc":{"kind":"user","methods":{"createPool(address,address,uint24)":{"notice":"Creates a pool for the given two tokens and fee"},"enableFeeAmount(uint24,int24)":{"notice":"Enables a fee amount with the given tickSpacing"},"feeAmountTickSpacing(uint24)":{"notice":"Returns the tick spacing for a given fee amount, if enabled, or 0 if not enabled"},"getPool(address,address,uint24)":{"notice":"Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist"},"owner()":{"notice":"Returns the current owner of the factory"},"setOwner(address)":{"notice":"Updates the owner of the factory"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":"IUniswapV3Factory"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"}},"version":1},"id":30} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3Pool.sol/IUniswapV3Pool.json b/deployment/arb1/out/IUniswapV3Pool.sol/IUniswapV3Pool.json deleted file mode 100644 index b483bde..0000000 --- a/deployment/arb1/out/IUniswapV3Pool.sol/IUniswapV3Pool.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"burn","inputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collect","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"amount0Requested","type":"uint128","internalType":"uint128"},{"name":"amount1Requested","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"amount0","type":"uint128","internalType":"uint128"},{"name":"amount1","type":"uint128","internalType":"uint128"}],"stateMutability":"nonpayable"},{"type":"function","name":"collectProtocol","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount0Requested","type":"uint128","internalType":"uint128"},{"name":"amount1Requested","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"amount0","type":"uint128","internalType":"uint128"},{"name":"amount1","type":"uint128","internalType":"uint128"}],"stateMutability":"nonpayable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"view"},{"type":"function","name":"feeGrowthGlobal0X128","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"feeGrowthGlobal1X128","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"flash","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseObservationCardinalityNext","inputs":[{"name":"observationCardinalityNext","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"liquidity","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"maxLiquidityPerTick","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"observations","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockTimestamp","type":"uint32","internalType":"uint32"},{"name":"tickCumulative","type":"int56","internalType":"int56"},{"name":"secondsPerLiquidityCumulativeX128","type":"uint160","internalType":"uint160"},{"name":"initialized","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"observe","inputs":[{"name":"secondsAgos","type":"uint32[]","internalType":"uint32[]"}],"outputs":[{"name":"tickCumulatives","type":"int56[]","internalType":"int56[]"},{"name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]","internalType":"uint160[]"}],"stateMutability":"view"},{"type":"function","name":"positions","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_liquidity","type":"uint128","internalType":"uint128"},{"name":"feeGrowthInside0LastX128","type":"uint256","internalType":"uint256"},{"name":"feeGrowthInside1LastX128","type":"uint256","internalType":"uint256"},{"name":"tokensOwed0","type":"uint128","internalType":"uint128"},{"name":"tokensOwed1","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"protocolFees","inputs":[],"outputs":[{"name":"token0","type":"uint128","internalType":"uint128"},{"name":"token1","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"setFeeProtocol","inputs":[{"name":"feeProtocol0","type":"uint8","internalType":"uint8"},{"name":"feeProtocol1","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"slot0","inputs":[],"outputs":[{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"},{"name":"tick","type":"int24","internalType":"int24"},{"name":"observationIndex","type":"uint16","internalType":"uint16"},{"name":"observationCardinality","type":"uint16","internalType":"uint16"},{"name":"observationCardinalityNext","type":"uint16","internalType":"uint16"},{"name":"feeProtocol","type":"uint8","internalType":"uint8"},{"name":"unlocked","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"snapshotCumulativesInside","inputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"}],"outputs":[{"name":"tickCumulativeInside","type":"int56","internalType":"int56"},{"name":"secondsPerLiquidityInsideX128","type":"uint160","internalType":"uint160"},{"name":"secondsInside","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"tickBitmap","inputs":[{"name":"wordPosition","type":"int16","internalType":"int16"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tickSpacing","inputs":[],"outputs":[{"name":"","type":"int24","internalType":"int24"}],"stateMutability":"view"},{"type":"function","name":"ticks","inputs":[{"name":"tick","type":"int24","internalType":"int24"}],"outputs":[{"name":"liquidityGross","type":"uint128","internalType":"uint128"},{"name":"liquidityNet","type":"int128","internalType":"int128"},{"name":"feeGrowthOutside0X128","type":"uint256","internalType":"uint256"},{"name":"feeGrowthOutside1X128","type":"uint256","internalType":"uint256"},{"name":"tickCumulativeOutside","type":"int56","internalType":"int56"},{"name":"secondsPerLiquidityOutsideX128","type":"uint160","internalType":"uint160"},{"name":"secondsOutside","type":"uint32","internalType":"uint32"},{"name":"initialized","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Burn","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tickLower","type":"int24","indexed":true,"internalType":"int24"},{"name":"tickUpper","type":"int24","indexed":true,"internalType":"int24"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Collect","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"tickLower","type":"int24","indexed":true,"internalType":"int24"},{"name":"tickUpper","type":"int24","indexed":true,"internalType":"int24"},{"name":"amount0","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount1","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"CollectProtocol","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount1","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Flash","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"paid0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"paid1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IncreaseObservationCardinalityNext","inputs":[{"name":"observationCardinalityNextOld","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"observationCardinalityNextNew","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"Initialize","inputs":[{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tickLower","type":"int24","indexed":true,"internalType":"int24"},{"name":"tickUpper","type":"int24","indexed":true,"internalType":"int24"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetFeeProtocol","inputs":[{"name":"feeProtocol0Old","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"feeProtocol1Old","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"feeProtocol0New","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"feeProtocol1New","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"int256","indexed":false,"internalType":"int256"},{"name":"amount1","type":"int256","indexed":false,"internalType":"int256"},{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"liquidity","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(int24,int24,uint128)":"a34123a7","collect(address,int24,int24,uint128,uint128)":"4f1eb3d8","collectProtocol(address,uint128,uint128)":"85b66729","factory()":"c45a0155","fee()":"ddca3f43","feeGrowthGlobal0X128()":"f3058399","feeGrowthGlobal1X128()":"46141319","flash(address,uint256,uint256,bytes)":"490e6cbc","increaseObservationCardinalityNext(uint16)":"32148f67","initialize(uint160)":"f637731d","liquidity()":"1a686502","maxLiquidityPerTick()":"70cf754a","mint(address,int24,int24,uint128,bytes)":"3c8a7d8d","observations(uint256)":"252c09d7","observe(uint32[])":"883bdbfd","positions(bytes32)":"514ea4bf","protocolFees()":"1ad8b03b","setFeeProtocol(uint8,uint8)":"8206a4d1","slot0()":"3850c7bd","snapshotCumulativesInside(int24,int24)":"a38807f2","swap(address,bool,int256,uint160,bytes)":"128acb08","tickBitmap(int16)":"5339c296","tickSpacing()":"d0c93a7c","ticks(int24)":"f30dba93","token0()":"0dfe1681","token1()":"d21220a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"CollectProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\"}],\"name\":\"Flash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\"}],\"name\":\"IncreaseObservationCardinalityNext\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\"}],\"name\":\"SetFeeProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"}],\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\"}],\"name\":\"setFeeProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\"}],\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\"},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\"},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The pool interface is broken up into many smaller pieces\",\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"details\":\"Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\",\"params\":{\"amount\":\"The amount of liquidity to remove\",\"amount0\":\"The amount of token0 withdrawn\",\"amount1\":\"The amount of token1 withdrawn\",\"owner\":\"The owner of the position for which liquidity is removed\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"details\":\"Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\",\"params\":{\"amount0\":\"The amount of token0 fees collected\",\"amount1\":\"The amount of token1 fees collected\",\"owner\":\"The owner of the position for which fees are collected\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"CollectProtocol(address,address,uint128,uint128)\":{\"params\":{\"amount0\":\"The amount of token1 protocol fees that is withdrawn\",\"recipient\":\"The address that receives the collected protocol fees\",\"sender\":\"The address that collects the protocol fees\"}},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"amount0\":\"The amount of token0 that was flashed\",\"amount1\":\"The amount of token1 that was flashed\",\"paid0\":\"The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\",\"paid1\":\"The amount of token1 paid for the flash, which can exceed the amount1 plus the fee\",\"recipient\":\"The address that received the tokens from flash\",\"sender\":\"The address that initiated the swap call, and that received the callback\"}},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"details\":\"observationCardinalityNext is not the observation cardinality until an observation is written at the index just before a mint/swap/burn.\",\"params\":{\"observationCardinalityNextNew\":\"The updated value of the next observation cardinality\",\"observationCardinalityNextOld\":\"The previous value of the next observation cardinality\"}},\"Initialize(uint160,int24)\":{\"details\":\"Mint/Burn/Swap cannot be emitted by the pool before Initialize\",\"params\":{\"sqrtPriceX96\":\"The initial sqrt price of the pool, as a Q64.96\",\"tick\":\"The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool\"}},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of liquidity minted to the position range\",\"amount0\":\"How much token0 was required for the minted liquidity\",\"amount1\":\"How much token1 was required for the minted liquidity\",\"owner\":\"The owner of the position and recipient of any minted liquidity\",\"sender\":\"The address that minted the liquidity\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"params\":{\"feeProtocol0New\":\"The updated value of the token0 protocol fee\",\"feeProtocol0Old\":\"The previous value of the token0 protocol fee\",\"feeProtocol1New\":\"The updated value of the token1 protocol fee\",\"feeProtocol1Old\":\"The previous value of the token1 protocol fee\"}},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"params\":{\"amount0\":\"The delta of the token0 balance of the pool\",\"amount1\":\"The delta of the token1 balance of the pool\",\"liquidity\":\"The liquidity of the pool after the swap\",\"recipient\":\"The address that received the output of the swap\",\"sender\":\"The address that initiated the swap call, and that received the callback\",\"sqrtPriceX96\":\"The sqrt(price) of the pool after the swap, as a Q64.96\",\"tick\":\"The log base 1.0001 of price of the pool after the swap\"}}},\"kind\":\"dev\",\"methods\":{\"burn(int24,int24,uint128)\":{\"details\":\"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect\",\"params\":{\"amount\":\"How much liquidity to burn\",\"tickLower\":\"The lower tick of the position for which to burn liquidity\",\"tickUpper\":\"The upper tick of the position for which to burn liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 sent to the recipient\",\"amount1\":\"The amount of token1 sent to the recipient\"}},\"collect(address,int24,int24,uint128,uint128)\":{\"details\":\"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\",\"params\":{\"amount0Requested\":\"How much token0 should be withdrawn from the fees owed\",\"amount1Requested\":\"How much token1 should be withdrawn from the fees owed\",\"recipient\":\"The address which should receive the fees collected\",\"tickLower\":\"The lower tick of the position for which to collect fees\",\"tickUpper\":\"The upper tick of the position for which to collect fees\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"collectProtocol(address,uint128,uint128)\":{\"params\":{\"amount0Requested\":\"The maximum amount of token0 to send, can be 0 to collect fees in only token1\",\"amount1Requested\":\"The maximum amount of token1 to send, can be 0 to collect fees in only token0\",\"recipient\":\"The address to which collected protocol fees should be sent\"},\"returns\":{\"amount0\":\"The protocol fee collected in token0\",\"amount1\":\"The protocol fee collected in token1\"}},\"factory()\":{\"returns\":{\"_0\":\"The contract address\"}},\"fee()\":{\"returns\":{\"_0\":\"The fee\"}},\"feeGrowthGlobal0X128()\":{\"details\":\"This value can overflow the uint256\"},\"feeGrowthGlobal1X128()\":{\"details\":\"This value can overflow the uint256\"},\"flash(address,uint256,uint256,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback\",\"params\":{\"amount0\":\"The amount of token0 to send\",\"amount1\":\"The amount of token1 to send\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address which will receive the token0 and token1 amounts\"}},\"increaseObservationCardinalityNext(uint16)\":{\"details\":\"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.\",\"params\":{\"observationCardinalityNext\":\"The desired minimum number of observations for the pool to store\"}},\"initialize(uint160)\":{\"details\":\"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\",\"params\":{\"sqrtPriceX96\":\"the initial sqrt price of the pool as a Q64.96\"}},\"liquidity()\":{\"details\":\"This value has no relationship to the total liquidity across all ticks\"},\"maxLiquidityPerTick()\":{\"details\":\"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\",\"returns\":{\"_0\":\"The max amount of liquidity per tick\"}},\"mint(address,int24,int24,uint128,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.\",\"params\":{\"amount\":\"The amount of liquidity to mint\",\"data\":\"Any data that should be passed through to the callback\",\"recipient\":\"The address for which the liquidity will be created\",\"tickLower\":\"The lower tick of the position in which to add liquidity\",\"tickUpper\":\"The upper tick of the position in which to add liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\",\"amount1\":\"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\"}},\"observations(uint256)\":{\"details\":\"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.\",\"params\":{\"index\":\"The element of the observations array to fetch\"},\"returns\":{\"blockTimestamp\":\"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use\"}},\"observe(uint32[])\":{\"details\":\"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\",\"params\":{\"secondsAgos\":\"From how long ago each cumulative tick and liquidity value should be returned\"},\"returns\":{\"secondsPerLiquidityCumulativeX128s\":\"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp\",\"tickCumulatives\":\"Cumulative tick values as of each `secondsAgos` from the current block timestamp\"}},\"positions(bytes32)\":{\"params\":{\"key\":\"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\"},\"returns\":{\"_liquidity\":\"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\"}},\"protocolFees()\":{\"details\":\"Protocol fees will never exceed uint128 max in either token\"},\"setFeeProtocol(uint8,uint8)\":{\"params\":{\"feeProtocol0\":\"new protocol fee for token0 of the pool\",\"feeProtocol1\":\"new protocol fee for token1 of the pool\"}},\"slot0()\":{\"returns\":{\"sqrtPriceX96\":\"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy\"}},\"snapshotCumulativesInside(int24,int24)\":{\"details\":\"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.\",\"params\":{\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"},\"returns\":{\"secondsInside\":\"The snapshot of seconds per liquidity for the range\",\"secondsPerLiquidityInsideX128\":\"The snapshot of seconds per liquidity for the range\",\"tickCumulativeInside\":\"The snapshot of the tick accumulator for the range\"}},\"swap(address,bool,int256,uint160,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback\",\"params\":{\"amountSpecified\":\"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address to receive the output of the swap\",\"sqrtPriceLimitX96\":\"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap\",\"zeroForOne\":\"The direction of the swap, true for token0 to token1, false for token1 to token0\"},\"returns\":{\"amount0\":\"The delta of the balance of token0 of the pool, exact when negative, minimum when positive\",\"amount1\":\"The delta of the balance of token1 of the pool, exact when negative, minimum when positive\"}},\"tickSpacing()\":{\"details\":\"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.\",\"returns\":{\"_0\":\"The tick spacing\"}},\"ticks(int24)\":{\"params\":{\"tick\":\"The tick to look up\"},\"returns\":{\"liquidityGross\":\"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position.\"}},\"token0()\":{\"returns\":{\"_0\":\"The token contract address\"}},\"token1()\":{\"returns\":{\"_0\":\"The token contract address\"}}},\"title\":\"The interface for a Uniswap V3 Pool\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when a position's liquidity is removed\"},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"notice\":\"Emitted when fees are collected by the owner of a position\"},\"CollectProtocol(address,address,uint128,uint128)\":{\"notice\":\"Emitted when the collected protocol fees are withdrawn by the factory owner\"},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted by the pool for any flashes of token0/token1\"},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"notice\":\"Emitted by the pool for increases to the number of observations that can be stored\"},\"Initialize(uint160,int24)\":{\"notice\":\"Emitted exactly once by a pool when #initialize is first called on the pool\"},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is minted for a given position\"},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"notice\":\"Emitted when the protocol fee is changed by the pool\"},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"notice\":\"Emitted by the pool for any swaps between token0 and token1\"}},\"kind\":\"user\",\"methods\":{\"burn(int24,int24,uint128)\":{\"notice\":\"Burn liquidity from the sender and account tokens owed for the liquidity to the position\"},\"collect(address,int24,int24,uint128,uint128)\":{\"notice\":\"Collects tokens owed to a position\"},\"collectProtocol(address,uint128,uint128)\":{\"notice\":\"Collect the protocol fee accrued to the pool\"},\"factory()\":{\"notice\":\"The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\"},\"fee()\":{\"notice\":\"The pool's fee in hundredths of a bip, i.e. 1e-6\"},\"feeGrowthGlobal0X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\"},\"feeGrowthGlobal1X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\"},\"flash(address,uint256,uint256,bytes)\":{\"notice\":\"Receive token0 and/or token1 and pay it back, plus a fee, in the callback\"},\"increaseObservationCardinalityNext(uint16)\":{\"notice\":\"Increase the maximum number of price and liquidity observations that this pool will store\"},\"initialize(uint160)\":{\"notice\":\"Sets the initial price for the pool\"},\"liquidity()\":{\"notice\":\"The currently in range liquidity available to the pool\"},\"maxLiquidityPerTick()\":{\"notice\":\"The maximum amount of position liquidity that can use any tick in the range\"},\"mint(address,int24,int24,uint128,bytes)\":{\"notice\":\"Adds liquidity for the given recipient/tickLower/tickUpper position\"},\"observations(uint256)\":{\"notice\":\"Returns data about a specific observation index\"},\"observe(uint32[])\":{\"notice\":\"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\"},\"positions(bytes32)\":{\"notice\":\"Returns the information about a position by the position's key\"},\"protocolFees()\":{\"notice\":\"The amounts of token0 and token1 that are owed to the protocol\"},\"setFeeProtocol(uint8,uint8)\":{\"notice\":\"Set the denominator of the protocol's % share of the fees\"},\"slot0()\":{\"notice\":\"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally.\"},\"snapshotCumulativesInside(int24,int24)\":{\"notice\":\"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\"},\"swap(address,bool,int256,uint160,bytes)\":{\"notice\":\"Swap token0 for token1, or token1 for token0\"},\"tickBitmap(int16)\":{\"notice\":\"Returns 256 packed tick initialized boolean values. See TickBitmap for more information\"},\"tickSpacing()\":{\"notice\":\"The pool tick spacing\"},\"ticks(int24)\":{\"notice\":\"Look up information about a specific tick in the pool\"},\"token0()\":{\"notice\":\"The first of the two tokens of the pool, sorted by address\"},\"token1()\":{\"notice\":\"The second of the two tokens of the pool, sorted by address\"}},\"notice\":\"A Uniswap pool facilitates swapping and automated market making between any two assets that strictly conform to the ERC20 specification\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":\"IUniswapV3Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"int24","name":"tickLower","type":"int24","indexed":true},{"internalType":"int24","name":"tickUpper","type":"int24","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"int24","name":"tickLower","type":"int24","indexed":true},{"internalType":"int24","name":"tickUpper","type":"int24","indexed":true},{"internalType":"uint128","name":"amount0","type":"uint128","indexed":false},{"internalType":"uint128","name":"amount1","type":"uint128","indexed":false}],"type":"event","name":"Collect","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint128","name":"amount0","type":"uint128","indexed":false},{"internalType":"uint128","name":"amount1","type":"uint128","indexed":false}],"type":"event","name":"CollectProtocol","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false},{"internalType":"uint256","name":"paid0","type":"uint256","indexed":false},{"internalType":"uint256","name":"paid1","type":"uint256","indexed":false}],"type":"event","name":"Flash","anonymous":false},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNextOld","type":"uint16","indexed":false},{"internalType":"uint16","name":"observationCardinalityNextNew","type":"uint16","indexed":false}],"type":"event","name":"IncreaseObservationCardinalityNext","anonymous":false},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false}],"type":"event","name":"Initialize","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"int24","name":"tickLower","type":"int24","indexed":true},{"internalType":"int24","name":"tickUpper","type":"int24","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"uint8","name":"feeProtocol0Old","type":"uint8","indexed":false},{"internalType":"uint8","name":"feeProtocol1Old","type":"uint8","indexed":false},{"internalType":"uint8","name":"feeProtocol0New","type":"uint8","indexed":false},{"internalType":"uint8","name":"feeProtocol1New","type":"uint8","indexed":false}],"type":"event","name":"SetFeeProtocol","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"int256","name":"amount0","type":"int256","indexed":false},{"internalType":"int256","name":"amount1","type":"int256","indexed":false},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"uint128","name":"liquidity","type":"uint128","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"collect","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"collectProtocol","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeGrowthGlobal0X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeGrowthGlobal1X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flash"},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"increaseObservationCardinalityNext"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"liquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxLiquidityPerTick","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"observations","outputs":[{"internalType":"uint32","name":"blockTimestamp","type":"uint32"},{"internalType":"int56","name":"tickCumulative","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityCumulativeX128","type":"uint160"},{"internalType":"bool","name":"initialized","type":"bool"}]},{"inputs":[{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"stateMutability":"view","type":"function","name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"},{"internalType":"uint160[]","name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"positions","outputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"protocolFees","outputs":[{"internalType":"uint128","name":"token0","type":"uint128"},{"internalType":"uint128","name":"token1","type":"uint128"}]},{"inputs":[{"internalType":"uint8","name":"feeProtocol0","type":"uint8"},{"internalType":"uint8","name":"feeProtocol1","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setFeeProtocol"},{"inputs":[],"stateMutability":"view","type":"function","name":"slot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint16","name":"observationIndex","type":"uint16"},{"internalType":"uint16","name":"observationCardinality","type":"uint16"},{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"},{"internalType":"uint8","name":"feeProtocol","type":"uint8"},{"internalType":"bool","name":"unlocked","type":"bool"}]},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"stateMutability":"view","type":"function","name":"snapshotCumulativesInside","outputs":[{"internalType":"int56","name":"tickCumulativeInside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityInsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"int256","name":"amount0","type":"int256"},{"internalType":"int256","name":"amount1","type":"int256"}]},{"inputs":[{"internalType":"int16","name":"wordPosition","type":"int16"}],"stateMutability":"view","type":"function","name":"tickBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}]},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"stateMutability":"view","type":"function","name":"ticks","outputs":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"},{"internalType":"int56","name":"tickCumulativeOutside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityOutsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsOutside","type":"uint32"},{"internalType":"bool","name":"initialized","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"burn(int24,int24,uint128)":{"details":"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect","params":{"amount":"How much liquidity to burn","tickLower":"The lower tick of the position for which to burn liquidity","tickUpper":"The upper tick of the position for which to burn liquidity"},"returns":{"amount0":"The amount of token0 sent to the recipient","amount1":"The amount of token1 sent to the recipient"}},"collect(address,int24,int24,uint128,uint128)":{"details":"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.","params":{"amount0Requested":"How much token0 should be withdrawn from the fees owed","amount1Requested":"How much token1 should be withdrawn from the fees owed","recipient":"The address which should receive the fees collected","tickLower":"The lower tick of the position for which to collect fees","tickUpper":"The upper tick of the position for which to collect fees"},"returns":{"amount0":"The amount of fees collected in token0","amount1":"The amount of fees collected in token1"}},"collectProtocol(address,uint128,uint128)":{"params":{"amount0Requested":"The maximum amount of token0 to send, can be 0 to collect fees in only token1","amount1Requested":"The maximum amount of token1 to send, can be 0 to collect fees in only token0","recipient":"The address to which collected protocol fees should be sent"},"returns":{"amount0":"The protocol fee collected in token0","amount1":"The protocol fee collected in token1"}},"factory()":{"returns":{"_0":"The contract address"}},"fee()":{"returns":{"_0":"The fee"}},"feeGrowthGlobal0X128()":{"details":"This value can overflow the uint256"},"feeGrowthGlobal1X128()":{"details":"This value can overflow the uint256"},"flash(address,uint256,uint256,bytes)":{"details":"The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback","params":{"amount0":"The amount of token0 to send","amount1":"The amount of token1 to send","data":"Any data to be passed through to the callback","recipient":"The address which will receive the token0 and token1 amounts"}},"increaseObservationCardinalityNext(uint16)":{"details":"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.","params":{"observationCardinalityNext":"The desired minimum number of observations for the pool to store"}},"initialize(uint160)":{"details":"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value","params":{"sqrtPriceX96":"the initial sqrt price of the pool as a Q64.96"}},"liquidity()":{"details":"This value has no relationship to the total liquidity across all ticks"},"maxLiquidityPerTick()":{"details":"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool","returns":{"_0":"The max amount of liquidity per tick"}},"mint(address,int24,int24,uint128,bytes)":{"details":"The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.","params":{"amount":"The amount of liquidity to mint","data":"Any data that should be passed through to the callback","recipient":"The address for which the liquidity will be created","tickLower":"The lower tick of the position in which to add liquidity","tickUpper":"The upper tick of the position in which to add liquidity"},"returns":{"amount0":"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback","amount1":"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback"}},"observations(uint256)":{"details":"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.","params":{"index":"The element of the observations array to fetch"},"returns":{"blockTimestamp":"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use"}},"observe(uint32[])":{"details":"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.","params":{"secondsAgos":"From how long ago each cumulative tick and liquidity value should be returned"},"returns":{"secondsPerLiquidityCumulativeX128s":"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp","tickCumulatives":"Cumulative tick values as of each `secondsAgos` from the current block timestamp"}},"positions(bytes32)":{"params":{"key":"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper"},"returns":{"_liquidity":"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke"}},"protocolFees()":{"details":"Protocol fees will never exceed uint128 max in either token"},"setFeeProtocol(uint8,uint8)":{"params":{"feeProtocol0":"new protocol fee for token0 of the pool","feeProtocol1":"new protocol fee for token1 of the pool"}},"slot0()":{"returns":{"sqrtPriceX96":"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy"}},"snapshotCumulativesInside(int24,int24)":{"details":"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.","params":{"tickLower":"The lower tick of the range","tickUpper":"The upper tick of the range"},"returns":{"secondsInside":"The snapshot of seconds per liquidity for the range","secondsPerLiquidityInsideX128":"The snapshot of seconds per liquidity for the range","tickCumulativeInside":"The snapshot of the tick accumulator for the range"}},"swap(address,bool,int256,uint160,bytes)":{"details":"The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback","params":{"amountSpecified":"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)","data":"Any data to be passed through to the callback","recipient":"The address to receive the output of the swap","sqrtPriceLimitX96":"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap","zeroForOne":"The direction of the swap, true for token0 to token1, false for token1 to token0"},"returns":{"amount0":"The delta of the balance of token0 of the pool, exact when negative, minimum when positive","amount1":"The delta of the balance of token1 of the pool, exact when negative, minimum when positive"}},"tickSpacing()":{"details":"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.","returns":{"_0":"The tick spacing"}},"ticks(int24)":{"params":{"tick":"The tick to look up"},"returns":{"liquidityGross":"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position."}},"token0()":{"returns":{"_0":"The token contract address"}},"token1()":{"returns":{"_0":"The token contract address"}}},"version":1},"userdoc":{"kind":"user","methods":{"burn(int24,int24,uint128)":{"notice":"Burn liquidity from the sender and account tokens owed for the liquidity to the position"},"collect(address,int24,int24,uint128,uint128)":{"notice":"Collects tokens owed to a position"},"collectProtocol(address,uint128,uint128)":{"notice":"Collect the protocol fee accrued to the pool"},"factory()":{"notice":"The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface"},"fee()":{"notice":"The pool's fee in hundredths of a bip, i.e. 1e-6"},"feeGrowthGlobal0X128()":{"notice":"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool"},"feeGrowthGlobal1X128()":{"notice":"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool"},"flash(address,uint256,uint256,bytes)":{"notice":"Receive token0 and/or token1 and pay it back, plus a fee, in the callback"},"increaseObservationCardinalityNext(uint16)":{"notice":"Increase the maximum number of price and liquidity observations that this pool will store"},"initialize(uint160)":{"notice":"Sets the initial price for the pool"},"liquidity()":{"notice":"The currently in range liquidity available to the pool"},"maxLiquidityPerTick()":{"notice":"The maximum amount of position liquidity that can use any tick in the range"},"mint(address,int24,int24,uint128,bytes)":{"notice":"Adds liquidity for the given recipient/tickLower/tickUpper position"},"observations(uint256)":{"notice":"Returns data about a specific observation index"},"observe(uint32[])":{"notice":"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp"},"positions(bytes32)":{"notice":"Returns the information about a position by the position's key"},"protocolFees()":{"notice":"The amounts of token0 and token1 that are owed to the protocol"},"setFeeProtocol(uint8,uint8)":{"notice":"Set the denominator of the protocol's % share of the fees"},"slot0()":{"notice":"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally."},"snapshotCumulativesInside(int24,int24)":{"notice":"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range"},"swap(address,bool,int256,uint160,bytes)":{"notice":"Swap token0 for token1, or token1 for token0"},"tickBitmap(int16)":{"notice":"Returns 256 packed tick initialized boolean values. See TickBitmap for more information"},"tickSpacing()":{"notice":"The pool tick spacing"},"ticks(int24)":{"notice":"Look up information about a specific tick in the pool"},"token0()":{"notice":"The first of the two tokens of the pool, sorted by address"},"token1()":{"notice":"The second of the two tokens of the pool, sorted by address"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":"IUniswapV3Pool"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"}},"version":1},"id":31} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3PoolActions.sol/IUniswapV3PoolActions.json b/deployment/arb1/out/IUniswapV3PoolActions.sol/IUniswapV3PoolActions.json deleted file mode 100644 index 9c3c0ea..0000000 --- a/deployment/arb1/out/IUniswapV3PoolActions.sol/IUniswapV3PoolActions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"burn","inputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collect","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"amount0Requested","type":"uint128","internalType":"uint128"},{"name":"amount1Requested","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"amount0","type":"uint128","internalType":"uint128"},{"name":"amount1","type":"uint128","internalType":"uint128"}],"stateMutability":"nonpayable"},{"type":"function","name":"flash","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseObservationCardinalityNext","inputs":[{"name":"observationCardinalityNext","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"burn(int24,int24,uint128)":"a34123a7","collect(address,int24,int24,uint128,uint128)":"4f1eb3d8","flash(address,uint256,uint256,bytes)":"490e6cbc","increaseObservationCardinalityNext(uint16)":"32148f67","initialize(uint160)":"f637731d","mint(address,int24,int24,uint128,bytes)":"3c8a7d8d","swap(address,bool,int256,uint160,bytes)":"128acb08"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"}],\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"burn(int24,int24,uint128)\":{\"details\":\"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect\",\"params\":{\"amount\":\"How much liquidity to burn\",\"tickLower\":\"The lower tick of the position for which to burn liquidity\",\"tickUpper\":\"The upper tick of the position for which to burn liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 sent to the recipient\",\"amount1\":\"The amount of token1 sent to the recipient\"}},\"collect(address,int24,int24,uint128,uint128)\":{\"details\":\"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\",\"params\":{\"amount0Requested\":\"How much token0 should be withdrawn from the fees owed\",\"amount1Requested\":\"How much token1 should be withdrawn from the fees owed\",\"recipient\":\"The address which should receive the fees collected\",\"tickLower\":\"The lower tick of the position for which to collect fees\",\"tickUpper\":\"The upper tick of the position for which to collect fees\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"flash(address,uint256,uint256,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback\",\"params\":{\"amount0\":\"The amount of token0 to send\",\"amount1\":\"The amount of token1 to send\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address which will receive the token0 and token1 amounts\"}},\"increaseObservationCardinalityNext(uint16)\":{\"details\":\"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.\",\"params\":{\"observationCardinalityNext\":\"The desired minimum number of observations for the pool to store\"}},\"initialize(uint160)\":{\"details\":\"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\",\"params\":{\"sqrtPriceX96\":\"the initial sqrt price of the pool as a Q64.96\"}},\"mint(address,int24,int24,uint128,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.\",\"params\":{\"amount\":\"The amount of liquidity to mint\",\"data\":\"Any data that should be passed through to the callback\",\"recipient\":\"The address for which the liquidity will be created\",\"tickLower\":\"The lower tick of the position in which to add liquidity\",\"tickUpper\":\"The upper tick of the position in which to add liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\",\"amount1\":\"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\"}},\"swap(address,bool,int256,uint160,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback\",\"params\":{\"amountSpecified\":\"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address to receive the output of the swap\",\"sqrtPriceLimitX96\":\"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap\",\"zeroForOne\":\"The direction of the swap, true for token0 to token1, false for token1 to token0\"},\"returns\":{\"amount0\":\"The delta of the balance of token0 of the pool, exact when negative, minimum when positive\",\"amount1\":\"The delta of the balance of token1 of the pool, exact when negative, minimum when positive\"}}},\"title\":\"Permissionless pool actions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burn(int24,int24,uint128)\":{\"notice\":\"Burn liquidity from the sender and account tokens owed for the liquidity to the position\"},\"collect(address,int24,int24,uint128,uint128)\":{\"notice\":\"Collects tokens owed to a position\"},\"flash(address,uint256,uint256,bytes)\":{\"notice\":\"Receive token0 and/or token1 and pay it back, plus a fee, in the callback\"},\"increaseObservationCardinalityNext(uint16)\":{\"notice\":\"Increase the maximum number of price and liquidity observations that this pool will store\"},\"initialize(uint160)\":{\"notice\":\"Sets the initial price for the pool\"},\"mint(address,int24,int24,uint128,bytes)\":{\"notice\":\"Adds liquidity for the given recipient/tickLower/tickUpper position\"},\"swap(address,bool,int256,uint160,bytes)\":{\"notice\":\"Swap token0 for token1, or token1 for token0\"}},\"notice\":\"Contains pool methods that can be called by anyone\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":\"IUniswapV3PoolActions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"collect","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flash"},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"increaseObservationCardinalityNext"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"int256","name":"amount0","type":"int256"},{"internalType":"int256","name":"amount1","type":"int256"}]}],"devdoc":{"kind":"dev","methods":{"burn(int24,int24,uint128)":{"details":"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect","params":{"amount":"How much liquidity to burn","tickLower":"The lower tick of the position for which to burn liquidity","tickUpper":"The upper tick of the position for which to burn liquidity"},"returns":{"amount0":"The amount of token0 sent to the recipient","amount1":"The amount of token1 sent to the recipient"}},"collect(address,int24,int24,uint128,uint128)":{"details":"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.","params":{"amount0Requested":"How much token0 should be withdrawn from the fees owed","amount1Requested":"How much token1 should be withdrawn from the fees owed","recipient":"The address which should receive the fees collected","tickLower":"The lower tick of the position for which to collect fees","tickUpper":"The upper tick of the position for which to collect fees"},"returns":{"amount0":"The amount of fees collected in token0","amount1":"The amount of fees collected in token1"}},"flash(address,uint256,uint256,bytes)":{"details":"The caller of this method receives a callback in the form of IUniswapV3FlashCallback#uniswapV3FlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback","params":{"amount0":"The amount of token0 to send","amount1":"The amount of token1 to send","data":"Any data to be passed through to the callback","recipient":"The address which will receive the token0 and token1 amounts"}},"increaseObservationCardinalityNext(uint16)":{"details":"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.","params":{"observationCardinalityNext":"The desired minimum number of observations for the pool to store"}},"initialize(uint160)":{"details":"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value","params":{"sqrtPriceX96":"the initial sqrt price of the pool as a Q64.96"}},"mint(address,int24,int24,uint128,bytes)":{"details":"The caller of this method receives a callback in the form of IUniswapV3MintCallback#uniswapV3MintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.","params":{"amount":"The amount of liquidity to mint","data":"Any data that should be passed through to the callback","recipient":"The address for which the liquidity will be created","tickLower":"The lower tick of the position in which to add liquidity","tickUpper":"The upper tick of the position in which to add liquidity"},"returns":{"amount0":"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback","amount1":"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback"}},"swap(address,bool,int256,uint160,bytes)":{"details":"The caller of this method receives a callback in the form of IUniswapV3SwapCallback#uniswapV3SwapCallback","params":{"amountSpecified":"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)","data":"Any data to be passed through to the callback","recipient":"The address to receive the output of the swap","sqrtPriceLimitX96":"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap","zeroForOne":"The direction of the swap, true for token0 to token1, false for token1 to token0"},"returns":{"amount0":"The delta of the balance of token0 of the pool, exact when negative, minimum when positive","amount1":"The delta of the balance of token1 of the pool, exact when negative, minimum when positive"}}},"version":1},"userdoc":{"kind":"user","methods":{"burn(int24,int24,uint128)":{"notice":"Burn liquidity from the sender and account tokens owed for the liquidity to the position"},"collect(address,int24,int24,uint128,uint128)":{"notice":"Collects tokens owed to a position"},"flash(address,uint256,uint256,bytes)":{"notice":"Receive token0 and/or token1 and pay it back, plus a fee, in the callback"},"increaseObservationCardinalityNext(uint16)":{"notice":"Increase the maximum number of price and liquidity observations that this pool will store"},"initialize(uint160)":{"notice":"Sets the initial price for the pool"},"mint(address,int24,int24,uint128,bytes)":{"notice":"Adds liquidity for the given recipient/tickLower/tickUpper position"},"swap(address,bool,int256,uint160,bytes)":{"notice":"Swap token0 for token1, or token1 for token0"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":"IUniswapV3PoolActions"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"}},"version":1},"id":33} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3PoolDerivedState.sol/IUniswapV3PoolDerivedState.json b/deployment/arb1/out/IUniswapV3PoolDerivedState.sol/IUniswapV3PoolDerivedState.json deleted file mode 100644 index 62fcd77..0000000 --- a/deployment/arb1/out/IUniswapV3PoolDerivedState.sol/IUniswapV3PoolDerivedState.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"observe","inputs":[{"name":"secondsAgos","type":"uint32[]","internalType":"uint32[]"}],"outputs":[{"name":"tickCumulatives","type":"int56[]","internalType":"int56[]"},{"name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]","internalType":"uint160[]"}],"stateMutability":"view"},{"type":"function","name":"snapshotCumulativesInside","inputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"}],"outputs":[{"name":"tickCumulativeInside","type":"int56","internalType":"int56"},{"name":"secondsPerLiquidityInsideX128","type":"uint160","internalType":"uint160"},{"name":"secondsInside","type":"uint32","internalType":"uint32"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"observe(uint32[])":"883bdbfd","snapshotCumulativesInside(int24,int24)":"a38807f2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"observe(uint32[])\":{\"details\":\"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\",\"params\":{\"secondsAgos\":\"From how long ago each cumulative tick and liquidity value should be returned\"},\"returns\":{\"secondsPerLiquidityCumulativeX128s\":\"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp\",\"tickCumulatives\":\"Cumulative tick values as of each `secondsAgos` from the current block timestamp\"}},\"snapshotCumulativesInside(int24,int24)\":{\"details\":\"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.\",\"params\":{\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"},\"returns\":{\"secondsInside\":\"The snapshot of seconds per liquidity for the range\",\"secondsPerLiquidityInsideX128\":\"The snapshot of seconds per liquidity for the range\",\"tickCumulativeInside\":\"The snapshot of the tick accumulator for the range\"}}},\"title\":\"Pool state that is not stored\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"observe(uint32[])\":{\"notice\":\"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\"},\"snapshotCumulativesInside(int24,int24)\":{\"notice\":\"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\"}},\"notice\":\"Contains view functions to provide information about the pool that is computed rather than stored on the blockchain. The functions here may have variable gas costs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":\"IUniswapV3PoolDerivedState\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"stateMutability":"view","type":"function","name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"},{"internalType":"uint160[]","name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]"}]},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"stateMutability":"view","type":"function","name":"snapshotCumulativesInside","outputs":[{"internalType":"int56","name":"tickCumulativeInside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityInsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}]}],"devdoc":{"kind":"dev","methods":{"observe(uint32[])":{"details":"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.","params":{"secondsAgos":"From how long ago each cumulative tick and liquidity value should be returned"},"returns":{"secondsPerLiquidityCumulativeX128s":"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp","tickCumulatives":"Cumulative tick values as of each `secondsAgos` from the current block timestamp"}},"snapshotCumulativesInside(int24,int24)":{"details":"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.","params":{"tickLower":"The lower tick of the range","tickUpper":"The upper tick of the range"},"returns":{"secondsInside":"The snapshot of seconds per liquidity for the range","secondsPerLiquidityInsideX128":"The snapshot of seconds per liquidity for the range","tickCumulativeInside":"The snapshot of the tick accumulator for the range"}}},"version":1},"userdoc":{"kind":"user","methods":{"observe(uint32[])":{"notice":"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp"},"snapshotCumulativesInside(int24,int24)":{"notice":"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":"IUniswapV3PoolDerivedState"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"}},"version":1},"id":34} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3PoolEvents.sol/IUniswapV3PoolEvents.json b/deployment/arb1/out/IUniswapV3PoolEvents.sol/IUniswapV3PoolEvents.json deleted file mode 100644 index dbdc62b..0000000 --- a/deployment/arb1/out/IUniswapV3PoolEvents.sol/IUniswapV3PoolEvents.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"Burn","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tickLower","type":"int24","indexed":true,"internalType":"int24"},{"name":"tickUpper","type":"int24","indexed":true,"internalType":"int24"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Collect","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"tickLower","type":"int24","indexed":true,"internalType":"int24"},{"name":"tickUpper","type":"int24","indexed":true,"internalType":"int24"},{"name":"amount0","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount1","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"CollectProtocol","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount1","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Flash","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"paid0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"paid1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"IncreaseObservationCardinalityNext","inputs":[{"name":"observationCardinalityNextOld","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"observationCardinalityNextNew","type":"uint16","indexed":false,"internalType":"uint16"}],"anonymous":false},{"type":"event","name":"Initialize","inputs":[{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tickLower","type":"int24","indexed":true,"internalType":"int24"},{"name":"tickUpper","type":"int24","indexed":true,"internalType":"int24"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amount0","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount1","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SetFeeProtocol","inputs":[{"name":"feeProtocol0Old","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"feeProtocol1Old","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"feeProtocol0New","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"feeProtocol1New","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount0","type":"int256","indexed":false,"internalType":"int256"},{"name":"amount1","type":"int256","indexed":false,"internalType":"int256"},{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"liquidity","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"CollectProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\"}],\"name\":\"Flash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\"}],\"name\":\"IncreaseObservationCardinalityNext\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\"}],\"name\":\"SetFeeProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Swap\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"details\":\"Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\",\"params\":{\"amount\":\"The amount of liquidity to remove\",\"amount0\":\"The amount of token0 withdrawn\",\"amount1\":\"The amount of token1 withdrawn\",\"owner\":\"The owner of the position for which liquidity is removed\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"details\":\"Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\",\"params\":{\"amount0\":\"The amount of token0 fees collected\",\"amount1\":\"The amount of token1 fees collected\",\"owner\":\"The owner of the position for which fees are collected\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"CollectProtocol(address,address,uint128,uint128)\":{\"params\":{\"amount0\":\"The amount of token1 protocol fees that is withdrawn\",\"recipient\":\"The address that receives the collected protocol fees\",\"sender\":\"The address that collects the protocol fees\"}},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"amount0\":\"The amount of token0 that was flashed\",\"amount1\":\"The amount of token1 that was flashed\",\"paid0\":\"The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\",\"paid1\":\"The amount of token1 paid for the flash, which can exceed the amount1 plus the fee\",\"recipient\":\"The address that received the tokens from flash\",\"sender\":\"The address that initiated the swap call, and that received the callback\"}},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"details\":\"observationCardinalityNext is not the observation cardinality until an observation is written at the index just before a mint/swap/burn.\",\"params\":{\"observationCardinalityNextNew\":\"The updated value of the next observation cardinality\",\"observationCardinalityNextOld\":\"The previous value of the next observation cardinality\"}},\"Initialize(uint160,int24)\":{\"details\":\"Mint/Burn/Swap cannot be emitted by the pool before Initialize\",\"params\":{\"sqrtPriceX96\":\"The initial sqrt price of the pool, as a Q64.96\",\"tick\":\"The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool\"}},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of liquidity minted to the position range\",\"amount0\":\"How much token0 was required for the minted liquidity\",\"amount1\":\"How much token1 was required for the minted liquidity\",\"owner\":\"The owner of the position and recipient of any minted liquidity\",\"sender\":\"The address that minted the liquidity\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"params\":{\"feeProtocol0New\":\"The updated value of the token0 protocol fee\",\"feeProtocol0Old\":\"The previous value of the token0 protocol fee\",\"feeProtocol1New\":\"The updated value of the token1 protocol fee\",\"feeProtocol1Old\":\"The previous value of the token1 protocol fee\"}},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"params\":{\"amount0\":\"The delta of the token0 balance of the pool\",\"amount1\":\"The delta of the token1 balance of the pool\",\"liquidity\":\"The liquidity of the pool after the swap\",\"recipient\":\"The address that received the output of the swap\",\"sender\":\"The address that initiated the swap call, and that received the callback\",\"sqrtPriceX96\":\"The sqrt(price) of the pool after the swap, as a Q64.96\",\"tick\":\"The log base 1.0001 of price of the pool after the swap\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Events emitted by a pool\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when a position's liquidity is removed\"},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"notice\":\"Emitted when fees are collected by the owner of a position\"},\"CollectProtocol(address,address,uint128,uint128)\":{\"notice\":\"Emitted when the collected protocol fees are withdrawn by the factory owner\"},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted by the pool for any flashes of token0/token1\"},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"notice\":\"Emitted by the pool for increases to the number of observations that can be stored\"},\"Initialize(uint160,int24)\":{\"notice\":\"Emitted exactly once by a pool when #initialize is first called on the pool\"},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is minted for a given position\"},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"notice\":\"Emitted when the protocol fee is changed by the pool\"},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"notice\":\"Emitted by the pool for any swaps between token0 and token1\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains all events emitted by the pool\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":\"IUniswapV3PoolEvents\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"int24","name":"tickLower","type":"int24","indexed":true},{"internalType":"int24","name":"tickUpper","type":"int24","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":false},{"internalType":"int24","name":"tickLower","type":"int24","indexed":true},{"internalType":"int24","name":"tickUpper","type":"int24","indexed":true},{"internalType":"uint128","name":"amount0","type":"uint128","indexed":false},{"internalType":"uint128","name":"amount1","type":"uint128","indexed":false}],"type":"event","name":"Collect","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint128","name":"amount0","type":"uint128","indexed":false},{"internalType":"uint128","name":"amount1","type":"uint128","indexed":false}],"type":"event","name":"CollectProtocol","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false},{"internalType":"uint256","name":"paid0","type":"uint256","indexed":false},{"internalType":"uint256","name":"paid1","type":"uint256","indexed":false}],"type":"event","name":"Flash","anonymous":false},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNextOld","type":"uint16","indexed":false},{"internalType":"uint16","name":"observationCardinalityNextNew","type":"uint16","indexed":false}],"type":"event","name":"IncreaseObservationCardinalityNext","anonymous":false},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false}],"type":"event","name":"Initialize","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"int24","name":"tickLower","type":"int24","indexed":true},{"internalType":"int24","name":"tickUpper","type":"int24","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false},{"internalType":"uint256","name":"amount0","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount1","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"uint8","name":"feeProtocol0Old","type":"uint8","indexed":false},{"internalType":"uint8","name":"feeProtocol1Old","type":"uint8","indexed":false},{"internalType":"uint8","name":"feeProtocol0New","type":"uint8","indexed":false},{"internalType":"uint8","name":"feeProtocol1New","type":"uint8","indexed":false}],"type":"event","name":"SetFeeProtocol","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"int256","name":"amount0","type":"int256","indexed":false},{"internalType":"int256","name":"amount1","type":"int256","indexed":false},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"uint128","name":"liquidity","type":"uint128","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false}],"type":"event","name":"Swap","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":"IUniswapV3PoolEvents"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"}},"version":1},"id":35} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json b/deployment/arb1/out/IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json deleted file mode 100644 index a4b5a86..0000000 --- a/deployment/arb1/out/IUniswapV3PoolImmutables.sol/IUniswapV3PoolImmutables.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"view"},{"type":"function","name":"maxLiquidityPerTick","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"tickSpacing","inputs":[],"outputs":[{"name":"","type":"int24","internalType":"int24"}],"stateMutability":"view"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"factory()":"c45a0155","fee()":"ddca3f43","maxLiquidityPerTick()":"70cf754a","tickSpacing()":"d0c93a7c","token0()":"0dfe1681","token1()":"d21220a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"factory()\":{\"returns\":{\"_0\":\"The contract address\"}},\"fee()\":{\"returns\":{\"_0\":\"The fee\"}},\"maxLiquidityPerTick()\":{\"details\":\"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\",\"returns\":{\"_0\":\"The max amount of liquidity per tick\"}},\"tickSpacing()\":{\"details\":\"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.\",\"returns\":{\"_0\":\"The tick spacing\"}},\"token0()\":{\"returns\":{\"_0\":\"The token contract address\"}},\"token1()\":{\"returns\":{\"_0\":\"The token contract address\"}}},\"title\":\"Pool state that never changes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"factory()\":{\"notice\":\"The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface\"},\"fee()\":{\"notice\":\"The pool's fee in hundredths of a bip, i.e. 1e-6\"},\"maxLiquidityPerTick()\":{\"notice\":\"The maximum amount of position liquidity that can use any tick in the range\"},\"tickSpacing()\":{\"notice\":\"The pool tick spacing\"},\"token0()\":{\"notice\":\"The first of the two tokens of the pool, sorted by address\"},\"token1()\":{\"notice\":\"The second of the two tokens of the pool, sorted by address\"}},\"notice\":\"These parameters are fixed for a pool forever, i.e., the methods will always return the same values\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":\"IUniswapV3PoolImmutables\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxLiquidityPerTick","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"tickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"factory()":{"returns":{"_0":"The contract address"}},"fee()":{"returns":{"_0":"The fee"}},"maxLiquidityPerTick()":{"details":"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool","returns":{"_0":"The max amount of liquidity per tick"}},"tickSpacing()":{"details":"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.","returns":{"_0":"The tick spacing"}},"token0()":{"returns":{"_0":"The token contract address"}},"token1()":{"returns":{"_0":"The token contract address"}}},"version":1},"userdoc":{"kind":"user","methods":{"factory()":{"notice":"The contract that deployed the pool, which must adhere to the IUniswapV3Factory interface"},"fee()":{"notice":"The pool's fee in hundredths of a bip, i.e. 1e-6"},"maxLiquidityPerTick()":{"notice":"The maximum amount of position liquidity that can use any tick in the range"},"tickSpacing()":{"notice":"The pool tick spacing"},"token0()":{"notice":"The first of the two tokens of the pool, sorted by address"},"token1()":{"notice":"The second of the two tokens of the pool, sorted by address"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":"IUniswapV3PoolImmutables"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"}},"version":1},"id":36} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3PoolOwnerActions.sol/IUniswapV3PoolOwnerActions.json b/deployment/arb1/out/IUniswapV3PoolOwnerActions.sol/IUniswapV3PoolOwnerActions.json deleted file mode 100644 index adc4949..0000000 --- a/deployment/arb1/out/IUniswapV3PoolOwnerActions.sol/IUniswapV3PoolOwnerActions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"collectProtocol","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount0Requested","type":"uint128","internalType":"uint128"},{"name":"amount1Requested","type":"uint128","internalType":"uint128"}],"outputs":[{"name":"amount0","type":"uint128","internalType":"uint128"},{"name":"amount1","type":"uint128","internalType":"uint128"}],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeProtocol","inputs":[{"name":"feeProtocol0","type":"uint8","internalType":"uint8"},{"name":"feeProtocol1","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"collectProtocol(address,uint128,uint128)":"85b66729","setFeeProtocol(uint8,uint8)":"8206a4d1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\"}],\"name\":\"setFeeProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"params\":{\"amount0Requested\":\"The maximum amount of token0 to send, can be 0 to collect fees in only token1\",\"amount1Requested\":\"The maximum amount of token1 to send, can be 0 to collect fees in only token0\",\"recipient\":\"The address to which collected protocol fees should be sent\"},\"returns\":{\"amount0\":\"The protocol fee collected in token0\",\"amount1\":\"The protocol fee collected in token1\"}},\"setFeeProtocol(uint8,uint8)\":{\"params\":{\"feeProtocol0\":\"new protocol fee for token0 of the pool\",\"feeProtocol1\":\"new protocol fee for token1 of the pool\"}}},\"title\":\"Permissioned pool actions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"notice\":\"Collect the protocol fee accrued to the pool\"},\"setFeeProtocol(uint8,uint8)\":{\"notice\":\"Set the denominator of the protocol's % share of the fees\"}},\"notice\":\"Contains pool methods that may only be called by the factory owner\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":\"IUniswapV3PoolOwnerActions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"collectProtocol","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}]},{"inputs":[{"internalType":"uint8","name":"feeProtocol0","type":"uint8"},{"internalType":"uint8","name":"feeProtocol1","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setFeeProtocol"}],"devdoc":{"kind":"dev","methods":{"collectProtocol(address,uint128,uint128)":{"params":{"amount0Requested":"The maximum amount of token0 to send, can be 0 to collect fees in only token1","amount1Requested":"The maximum amount of token1 to send, can be 0 to collect fees in only token0","recipient":"The address to which collected protocol fees should be sent"},"returns":{"amount0":"The protocol fee collected in token0","amount1":"The protocol fee collected in token1"}},"setFeeProtocol(uint8,uint8)":{"params":{"feeProtocol0":"new protocol fee for token0 of the pool","feeProtocol1":"new protocol fee for token1 of the pool"}}},"version":1},"userdoc":{"kind":"user","methods":{"collectProtocol(address,uint128,uint128)":{"notice":"Collect the protocol fee accrued to the pool"},"setFeeProtocol(uint8,uint8)":{"notice":"Set the denominator of the protocol's % share of the fees"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":"IUniswapV3PoolOwnerActions"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"}},"version":1},"id":37} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3PoolState.sol/IUniswapV3PoolState.json b/deployment/arb1/out/IUniswapV3PoolState.sol/IUniswapV3PoolState.json deleted file mode 100644 index 6a3deaf..0000000 --- a/deployment/arb1/out/IUniswapV3PoolState.sol/IUniswapV3PoolState.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"feeGrowthGlobal0X128","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"feeGrowthGlobal1X128","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"liquidity","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"observations","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockTimestamp","type":"uint32","internalType":"uint32"},{"name":"tickCumulative","type":"int56","internalType":"int56"},{"name":"secondsPerLiquidityCumulativeX128","type":"uint160","internalType":"uint160"},{"name":"initialized","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"positions","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"_liquidity","type":"uint128","internalType":"uint128"},{"name":"feeGrowthInside0LastX128","type":"uint256","internalType":"uint256"},{"name":"feeGrowthInside1LastX128","type":"uint256","internalType":"uint256"},{"name":"tokensOwed0","type":"uint128","internalType":"uint128"},{"name":"tokensOwed1","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"protocolFees","inputs":[],"outputs":[{"name":"token0","type":"uint128","internalType":"uint128"},{"name":"token1","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"slot0","inputs":[],"outputs":[{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"},{"name":"tick","type":"int24","internalType":"int24"},{"name":"observationIndex","type":"uint16","internalType":"uint16"},{"name":"observationCardinality","type":"uint16","internalType":"uint16"},{"name":"observationCardinalityNext","type":"uint16","internalType":"uint16"},{"name":"feeProtocol","type":"uint8","internalType":"uint8"},{"name":"unlocked","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"tickBitmap","inputs":[{"name":"wordPosition","type":"int16","internalType":"int16"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ticks","inputs":[{"name":"tick","type":"int24","internalType":"int24"}],"outputs":[{"name":"liquidityGross","type":"uint128","internalType":"uint128"},{"name":"liquidityNet","type":"int128","internalType":"int128"},{"name":"feeGrowthOutside0X128","type":"uint256","internalType":"uint256"},{"name":"feeGrowthOutside1X128","type":"uint256","internalType":"uint256"},{"name":"tickCumulativeOutside","type":"int56","internalType":"int56"},{"name":"secondsPerLiquidityOutsideX128","type":"uint160","internalType":"uint160"},{"name":"secondsOutside","type":"uint32","internalType":"uint32"},{"name":"initialized","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"feeGrowthGlobal0X128()":"f3058399","feeGrowthGlobal1X128()":"46141319","liquidity()":"1a686502","observations(uint256)":"252c09d7","positions(bytes32)":"514ea4bf","protocolFees()":"1ad8b03b","slot0()":"3850c7bd","tickBitmap(int16)":"5339c296","ticks(int24)":"f30dba93"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\"}],\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\"},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\"},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"feeGrowthGlobal0X128()\":{\"details\":\"This value can overflow the uint256\"},\"feeGrowthGlobal1X128()\":{\"details\":\"This value can overflow the uint256\"},\"liquidity()\":{\"details\":\"This value has no relationship to the total liquidity across all ticks\"},\"observations(uint256)\":{\"details\":\"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.\",\"params\":{\"index\":\"The element of the observations array to fetch\"},\"returns\":{\"blockTimestamp\":\"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use\"}},\"positions(bytes32)\":{\"params\":{\"key\":\"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\"},\"returns\":{\"_liquidity\":\"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\"}},\"protocolFees()\":{\"details\":\"Protocol fees will never exceed uint128 max in either token\"},\"slot0()\":{\"returns\":{\"sqrtPriceX96\":\"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy\"}},\"ticks(int24)\":{\"params\":{\"tick\":\"The tick to look up\"},\"returns\":{\"liquidityGross\":\"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position.\"}}},\"title\":\"Pool state that can change\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"feeGrowthGlobal0X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\"},\"feeGrowthGlobal1X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\"},\"liquidity()\":{\"notice\":\"The currently in range liquidity available to the pool\"},\"observations(uint256)\":{\"notice\":\"Returns data about a specific observation index\"},\"positions(bytes32)\":{\"notice\":\"Returns the information about a position by the position's key\"},\"protocolFees()\":{\"notice\":\"The amounts of token0 and token1 that are owed to the protocol\"},\"slot0()\":{\"notice\":\"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally.\"},\"tickBitmap(int16)\":{\"notice\":\"Returns 256 packed tick initialized boolean values. See TickBitmap for more information\"},\"ticks(int24)\":{\"notice\":\"Look up information about a specific tick in the pool\"}},\"notice\":\"These methods compose the pool's state, and can change with any frequency including multiple times per transaction\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":\"IUniswapV3PoolState\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"feeGrowthGlobal0X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeGrowthGlobal1X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"liquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"observations","outputs":[{"internalType":"uint32","name":"blockTimestamp","type":"uint32"},{"internalType":"int56","name":"tickCumulative","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityCumulativeX128","type":"uint160"},{"internalType":"bool","name":"initialized","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"positions","outputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"protocolFees","outputs":[{"internalType":"uint128","name":"token0","type":"uint128"},{"internalType":"uint128","name":"token1","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"slot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint16","name":"observationIndex","type":"uint16"},{"internalType":"uint16","name":"observationCardinality","type":"uint16"},{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"},{"internalType":"uint8","name":"feeProtocol","type":"uint8"},{"internalType":"bool","name":"unlocked","type":"bool"}]},{"inputs":[{"internalType":"int16","name":"wordPosition","type":"int16"}],"stateMutability":"view","type":"function","name":"tickBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"stateMutability":"view","type":"function","name":"ticks","outputs":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"},{"internalType":"int56","name":"tickCumulativeOutside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityOutsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsOutside","type":"uint32"},{"internalType":"bool","name":"initialized","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"feeGrowthGlobal0X128()":{"details":"This value can overflow the uint256"},"feeGrowthGlobal1X128()":{"details":"This value can overflow the uint256"},"liquidity()":{"details":"This value has no relationship to the total liquidity across all ticks"},"observations(uint256)":{"details":"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.","params":{"index":"The element of the observations array to fetch"},"returns":{"blockTimestamp":"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use"}},"positions(bytes32)":{"params":{"key":"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper"},"returns":{"_liquidity":"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke"}},"protocolFees()":{"details":"Protocol fees will never exceed uint128 max in either token"},"slot0()":{"returns":{"sqrtPriceX96":"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy"}},"ticks(int24)":{"params":{"tick":"The tick to look up"},"returns":{"liquidityGross":"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position."}}},"version":1},"userdoc":{"kind":"user","methods":{"feeGrowthGlobal0X128()":{"notice":"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool"},"feeGrowthGlobal1X128()":{"notice":"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool"},"liquidity()":{"notice":"The currently in range liquidity available to the pool"},"observations(uint256)":{"notice":"Returns data about a specific observation index"},"positions(bytes32)":{"notice":"Returns the information about a position by the position's key"},"protocolFees()":{"notice":"The amounts of token0 and token1 that are owed to the protocol"},"slot0()":{"notice":"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally."},"tickBitmap(int16)":{"notice":"Returns 256 packed tick initialized boolean values. See TickBitmap for more information"},"ticks(int24)":{"notice":"Look up information about a specific tick in the pool"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":"IUniswapV3PoolState"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"}},"version":1},"id":38} \ No newline at end of file diff --git a/deployment/arb1/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json b/deployment/arb1/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json deleted file mode 100644 index 5b5a4f0..0000000 --- a/deployment/arb1/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"uniswapV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"uniswapV3SwapCallback(int256,int256,bytes)":"fa461e33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"amount0Delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1Delta\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3SwapCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"details\":\"In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.\",\"params\":{\"amount0Delta\":\"The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.\",\"amount1Delta\":\"The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.\",\"data\":\"Any data passed through by the caller via the IUniswapV3PoolActions#swap call\"}}},\"title\":\"Callback for IUniswapV3PoolActions#swap\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"notice\":\"Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.\"}},\"notice\":\"Any contract that calls IUniswapV3PoolActions#swap must implement this interface\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":\"IUniswapV3SwapCallback\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"uniswapV3SwapCallback"}],"devdoc":{"kind":"dev","methods":{"uniswapV3SwapCallback(int256,int256,bytes)":{"details":"In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.","params":{"amount0Delta":"The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.","amount1Delta":"The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.","data":"Any data passed through by the caller via the IUniswapV3PoolActions#swap call"}}},"version":1},"userdoc":{"kind":"user","methods":{"uniswapV3SwapCallback(int256,int256,bytes)":{"notice":"Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":"IUniswapV3SwapCallback"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"}},"version":1},"id":32} \ No newline at end of file diff --git a/deployment/arb1/out/IVault.sol/IVault.json b/deployment/arb1/out/IVault.sol/IVault.json deleted file mode 100644 index 4be27f8..0000000 --- a/deployment/arb1/out/IVault.sol/IVault.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"cancelAllDexorders","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelDexorder","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"},{"name":"tranche_index","type":"uint8","internalType":"uint8"},{"name":"proof","type":"tuple","internalType":"struct PriceProof","components":[{"name":"proof","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"feeManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFeeManager"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"numSwapOrders","inputs":[],"outputs":[{"name":"num","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"orderCanceled","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"placeDexorder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placeDexorders","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"ocoMode","type":"uint8","internalType":"enum OcoMode"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placementFee","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"placementFee","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swapOrderStatus","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"status","type":"tuple","internalType":"struct SwapOrderStatus","components":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"},{"name":"canceled","type":"bool","internalType":"bool"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"ocoGroup","type":"uint64","internalType":"uint64"},{"name":"originalOrder","type":"uint64","internalType":"uint64"},{"name":"startPrice","type":"uint256","internalType":"uint256"},{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"trancheStatus","type":"tuple[]","internalType":"struct TrancheStatus[]","components":[{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"activationTime","type":"uint32","internalType":"uint32"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"}]}]}],"stateMutability":"view"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgrade","inputs":[{"name":"impl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vaultImplDidChange","inputs":[{"name":"oldImpl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrapper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Killed","inputs":[],"anonymous":false},{"type":"event","name":"VaultCreated","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"num","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"VaultImplChanged","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultImplProposed","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"},{"name":"activationTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"receiver","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":{"cancelAllDexorders()":"2800c78f","cancelDexorder(uint64)":"8489f9bf","execute(uint64,uint8,(uint256))":"6e98833d","factory()":"c45a0155","feeManager()":"d0fb0203","implementation()":"5c60da1b","kill()":"41c0e1b5","killed()":"1f3a0e41","num()":"4e70b1dc","numSwapOrders()":"e78f84e7","orderCanceled(uint64)":"a449d030","owner()":"8da5cb5b","placeDexorder((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]))":"da1c795f","placeDexorders((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],uint8)":"89a44acb","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]),(uint8,uint8,uint8,uint8,uint8))":"4c153087","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],(uint8,uint8,uint8,uint8,uint8))":"2e690bb7","swapOrderStatus(uint64)":"77bad6b5","unwrap(uint256)":"de0e9a3e","upgrade(address)":"0900f010","vaultImplDidChange(address)":"58b72a09","version()":"54fd4d50","withdraw(address,uint256)":"f3fef3a3","withdraw(uint256)":"2e1a7d4d","withdrawTo(address,address,uint256)":"c3b35a7e","withdrawTo(address,uint256)":"205c2878","wrap(uint256)":"ea598cb0","wrapper()":"ac210cc7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Killed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"VaultCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"VaultImplChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"VaultImplProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelAllDexorders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"cancelDexorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"tranche_index\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeManager\",\"outputs\":[{\"internalType\":\"contract IFeeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numSwapOrders\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"num\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"orderCanceled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"placeDexorder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"internalType\":\"enum OcoMode\",\"name\":\"ocoMode\",\"type\":\"uint8\"}],\"name\":\"placeDexorders\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"swapOrderStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"ocoGroup\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"originalOrder\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"startPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"}],\"internalType\":\"struct TrancheStatus[]\",\"name\":\"trancheStatus\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrderStatus\",\"name\":\"status\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldImpl\",\"type\":\"address\"}],\"name\":\"vaultImplDidChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrapper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interface/IVault.sol\":\"IVault\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[],"type":"event","name":"Killed","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint8","name":"num","type":"uint8","indexed":false}],"type":"event","name":"VaultCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false}],"type":"event","name":"VaultImplChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":false}],"type":"event","name":"VaultImplProposed","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelAllDexorders"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelDexorder"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"},{"internalType":"uint8","name":"tranche_index","type":"uint8"},{"internalType":"struct PriceProof","name":"proof","type":"tuple","components":[{"internalType":"uint256","name":"proof","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeManager","outputs":[{"internalType":"contract IFeeManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numSwapOrders","outputs":[{"internalType":"uint64","name":"num","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"orderCanceled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]}],"stateMutability":"payable","type":"function","name":"placeDexorder"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"enum OcoMode","name":"ocoMode","type":"uint8"}],"stateMutability":"payable","type":"function","name":"placeDexorders"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"swapOrderStatus","outputs":[{"internalType":"struct SwapOrderStatus","name":"status","type":"tuple","components":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint64","name":"ocoGroup","type":"uint64"},{"internalType":"uint64","name":"originalOrder","type":"uint64"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"struct TrancheStatus[]","name":"trancheStatus","type":"tuple[]","components":[{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"uint32","name":"activationTime","type":"uint32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"}]}]}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unwrap"},{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[{"internalType":"address","name":"oldImpl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"vaultImplDidChange"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap"},{"inputs":[],"stateMutability":"view","type":"function","name":"wrapper","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interface/IVault.sol":"IVault"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null}},"version":1},"id":72} \ No newline at end of file diff --git a/deployment/arb1/out/IVault.sol/IVaultImpl.json b/deployment/arb1/out/IVault.sol/IVaultImpl.json deleted file mode 100644 index 77059e3..0000000 --- a/deployment/arb1/out/IVault.sol/IVaultImpl.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"cancelAllDexorders","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelDexorder","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"},{"name":"tranche_index","type":"uint8","internalType":"uint8"},{"name":"proof","type":"tuple","internalType":"struct PriceProof","components":[{"name":"proof","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFeeManager"}],"stateMutability":"view"},{"type":"function","name":"numSwapOrders","inputs":[],"outputs":[{"name":"num","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"orderCanceled","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"placeDexorder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placeDexorders","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"ocoMode","type":"uint8","internalType":"enum OcoMode"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placementFee","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"placementFee","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swapOrderStatus","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"status","type":"tuple","internalType":"struct SwapOrderStatus","components":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"},{"name":"canceled","type":"bool","internalType":"bool"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"ocoGroup","type":"uint64","internalType":"uint64"},{"name":"originalOrder","type":"uint64","internalType":"uint64"},{"name":"startPrice","type":"uint256","internalType":"uint256"},{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"trancheStatus","type":"tuple[]","internalType":"struct TrancheStatus[]","components":[{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"activationTime","type":"uint32","internalType":"uint32"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"}]}]}],"stateMutability":"view"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vaultImplDidChange","inputs":[{"name":"oldImpl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrapper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"cancelAllDexorders()":"2800c78f","cancelDexorder(uint64)":"8489f9bf","execute(uint64,uint8,(uint256))":"6e98833d","feeManager()":"d0fb0203","numSwapOrders()":"e78f84e7","orderCanceled(uint64)":"a449d030","placeDexorder((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]))":"da1c795f","placeDexorders((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],uint8)":"89a44acb","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]),(uint8,uint8,uint8,uint8,uint8))":"4c153087","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],(uint8,uint8,uint8,uint8,uint8))":"2e690bb7","swapOrderStatus(uint64)":"77bad6b5","unwrap(uint256)":"de0e9a3e","vaultImplDidChange(address)":"58b72a09","version()":"54fd4d50","wrap(uint256)":"ea598cb0","wrapper()":"ac210cc7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"cancelAllDexorders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"cancelDexorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"tranche_index\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeManager\",\"outputs\":[{\"internalType\":\"contract IFeeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numSwapOrders\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"num\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"orderCanceled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"placeDexorder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"internalType\":\"enum OcoMode\",\"name\":\"ocoMode\",\"type\":\"uint8\"}],\"name\":\"placeDexorders\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"swapOrderStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"ocoGroup\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"originalOrder\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"startPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"}],\"internalType\":\"struct TrancheStatus[]\",\"name\":\"trancheStatus\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrderStatus\",\"name\":\"status\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldImpl\",\"type\":\"address\"}],\"name\":\"vaultImplDidChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrapper\",\"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/interface/IVault.sol\":\"IVaultImpl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelAllDexorders"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelDexorder"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"},{"internalType":"uint8","name":"tranche_index","type":"uint8"},{"internalType":"struct PriceProof","name":"proof","type":"tuple","components":[{"internalType":"uint256","name":"proof","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[],"stateMutability":"view","type":"function","name":"feeManager","outputs":[{"internalType":"contract IFeeManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numSwapOrders","outputs":[{"internalType":"uint64","name":"num","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"orderCanceled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]}],"stateMutability":"payable","type":"function","name":"placeDexorder"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"enum OcoMode","name":"ocoMode","type":"uint8"}],"stateMutability":"payable","type":"function","name":"placeDexorders"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"swapOrderStatus","outputs":[{"internalType":"struct SwapOrderStatus","name":"status","type":"tuple","components":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint64","name":"ocoGroup","type":"uint64"},{"internalType":"uint64","name":"originalOrder","type":"uint64"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"struct TrancheStatus[]","name":"trancheStatus","type":"tuple[]","components":[{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"uint32","name":"activationTime","type":"uint32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"}]}]}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unwrap"},{"inputs":[{"internalType":"address","name":"oldImpl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"vaultImplDidChange"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap"},{"inputs":[],"stateMutability":"view","type":"function","name":"wrapper","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interface/IVault.sol":"IVaultImpl"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null}},"version":1},"id":72} \ No newline at end of file diff --git a/deployment/arb1/out/IVault.sol/IVaultProxy.json b/deployment/arb1/out/IVault.sol/IVaultProxy.json deleted file mode 100644 index b27f3f4..0000000 --- a/deployment/arb1/out/IVault.sol/IVaultProxy.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"impl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Killed","inputs":[],"anonymous":false},{"type":"event","name":"VaultCreated","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"num","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"VaultImplChanged","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultImplProposed","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"},{"name":"activationTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"receiver","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":{"factory()":"c45a0155","implementation()":"5c60da1b","kill()":"41c0e1b5","killed()":"1f3a0e41","num()":"4e70b1dc","owner()":"8da5cb5b","upgrade(address)":"0900f010","withdraw(address,uint256)":"f3fef3a3","withdraw(uint256)":"2e1a7d4d","withdrawTo(address,address,uint256)":"c3b35a7e","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Killed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"VaultCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"VaultImplChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"VaultImplProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interface/IVault.sol\":\"IVaultProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[],"type":"event","name":"Killed","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint8","name":"num","type":"uint8","indexed":false}],"type":"event","name":"VaultCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false}],"type":"event","name":"VaultImplChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":false}],"type":"event","name":"VaultImplProposed","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interface/IVault.sol":"IVaultProxy"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null}},"version":1},"id":72} \ No newline at end of file diff --git a/deployment/arb1/out/IVaultFactory.sol/IVaultFactory.json b/deployment/arb1/out/IVaultFactory.sol/IVaultFactory.json deleted file mode 100644 index 55fbf57..0000000 --- a/deployment/arb1/out/IVaultFactory.sol/IVaultFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"deployVault","inputs":[{"name":"num","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployVault","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployVault","inputs":[],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployVault","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"num","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"parameters","inputs":[],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"num","type":"uint8","internalType":"uint8"},{"name":"vaultImpl","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposedImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposedImplActivationTimestamp","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"upgradeImplementation","inputs":[{"name":"newImpl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgrader","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deployVault()":"901c4e4f","deployVault(address)":"5eb512e7","deployVault(address,uint8)":"dd009fdc","deployVault(uint8)":"1a48240f","implementation()":"5c60da1b","killed()":"1f3a0e41","parameters()":"89035730","proposedImpl()":"a41e649c","proposedImplActivationTimestamp()":"74832800","upgradeImplementation(address)":"83f94db7","upgrader()":"af269745"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"vaultImpl\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedImplActivationTimestamp\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImpl\",\"type\":\"address\"}],\"name\":\"upgradeImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgrader\",\"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/interface/IVaultFactory.sol\":\"IVaultFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"num","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint8","name":"num","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"parameters","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint8","name":"num","type":"uint8"},{"internalType":"address","name":"vaultImpl","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedImplActivationTimestamp","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeImplementation"},{"inputs":[],"stateMutability":"view","type":"function","name":"upgrader","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interface/IVaultFactory.sol":"IVaultFactory"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null}},"version":1},"id":73} \ No newline at end of file diff --git a/deployment/arb1/out/IWETH9.sol/IWETH9.json b/deployment/arb1/out/IWETH9.sol/IWETH9.json deleted file mode 100644 index 3b90c59..0000000 --- a/deployment/arb1/out/IWETH9.sol/IWETH9.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"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":"value","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":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"","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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","deposit()":"d0e30db0","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"title\":\"Interface for WETH9\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit()\":{\"notice\":\"Deposit ether to get wrapped ether\"},\"withdraw(uint256)\":{\"notice\":\"Withdraw wrapped ether to get ether\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":\"IWETH9\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"deposit()":{"notice":"Deposit ether to get wrapped ether"},"withdraw(uint256)":{"notice":"Withdraw wrapped ether to get ether"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":"IWETH9"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"}},"version":1},"id":49} \ No newline at end of file diff --git a/deployment/arb1/out/LineLib.sol/LineLib.json b/deployment/arb1/out/LineLib.sol/LineLib.json deleted file mode 100644 index d3caff5..0000000 --- a/deployment/arb1/out/LineLib.sol/LineLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ab408993dcc2773945a7d5ca9436af5e7647ba67c61a5c14b08dbc3c7558d50564736f6c634300081a0033","sourceMap":"200:2136:60:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ab408993dcc2773945a7d5ca9436af5e7647ba67c61a5c14b08dbc3c7558d50564736f6c634300081a0033","sourceMap":"200:2136:60:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/LineLib.sol\":\"LineLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/LineLib.sol":"LineLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null}},"version":1},"id":60} \ No newline at end of file diff --git a/deployment/arb1/out/LiquidityAmounts.sol/LiquidityAmounts.json b/deployment/arb1/out/LiquidityAmounts.sol/LiquidityAmounts.json deleted file mode 100644 index 4c7f25b..0000000 --- a/deployment/arb1/out/LiquidityAmounts.sol/LiquidityAmounts.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122009781c34b17f54fa354275458196901edb59667fddce25a4d78ca885de93cd0f64736f6c634300081a0033","sourceMap":"327:6487:50:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122009781c34b17f54fa354275458196901edb59667fddce25a4d78ca885de93cd0f64736f6c634300081a0033","sourceMap":"327:6487:50:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Liquidity amount functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Provides functions for computing liquidity amounts from token amounts and prices\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":\"LiquidityAmounts\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol":"LiquidityAmounts"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol":{"keccak256":"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032","urls":["bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d","dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol":{"keccak256":"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24","urls":["bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844","dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w"],"license":"GPL-2.0-or-later"}},"version":1},"id":50} \ No newline at end of file diff --git a/deployment/arb1/out/MirrorEnv.sol/MirrorEnv.json b/deployment/arb1/out/MirrorEnv.sol/MirrorEnv.json deleted file mode 100644 index 891ec8d..0000000 --- a/deployment/arb1/out/MirrorEnv.sol/MirrorEnv.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"nfpm_","type":"address","internalType":"contract INonfungiblePositionManager"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"nonpayable"},{"type":"function","name":"mirrorPool","inputs":[{"name":"info","type":"tuple","internalType":"struct MirrorEnv.PoolInfo","components":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"token0","type":"address","internalType":"contract IERC20Metadata"},{"name":"token1","type":"address","internalType":"contract IERC20Metadata"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"mock","type":"tuple","internalType":"struct MirrorEnv.MockPool","components":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"inverted","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"mirrorPools","inputs":[{"name":"pool","type":"tuple[]","internalType":"struct MirrorEnv.PoolInfo[]","components":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"token0","type":"address","internalType":"contract IERC20Metadata"},{"name":"token1","type":"address","internalType":"contract IERC20Metadata"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"mock","type":"tuple[]","internalType":"struct MirrorEnv.MockPool[]","components":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"inverted","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"mirrorToken","inputs":[{"name":"info","type":"tuple","internalType":"struct MirrorEnv.TokenInfo","components":[{"name":"addr","type":"address","internalType":"contract IERC20Metadata"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"mock","type":"address","internalType":"contract MockERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"nfpm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract INonfungiblePositionManager"}],"stateMutability":"view"},{"type":"function","name":"pools","inputs":[{"name":"","type":"address","internalType":"contract IUniswapV3Pool"}],"outputs":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"inverted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"tokens","inputs":[{"name":"","type":"address","internalType":"contract IERC20Metadata"}],"outputs":[{"name":"","type":"address","internalType":"contract MockERC20"}],"stateMutability":"view"},{"type":"function","name":"updatePool","inputs":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"mock","type":"tuple","internalType":"struct MirrorEnv.MockPool","components":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"inverted","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"updatePools","inputs":[{"name":"infos","type":"tuple[]","internalType":"struct MirrorEnv.PoolUpdateInfo[]","components":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}]}],"outputs":[{"name":"mock","type":"tuple[]","internalType":"struct MirrorEnv.MockPool[]","components":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"},{"name":"inverted","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60c034609557601f612ff038819003918201601f19168301916001600160401b03831184841017609a5780849260409485528339810103126095578051906001600160a01b038216820360955760200151906001600160a01b038216820360955760805260a052604051612f3f90816100b182396080518181816108e90152610ccc015260a051818181610495015261179b0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081637303e913146108a0575080639949e04f146107a4578063a4063dbc1461071d578063b4a14b15146104b9578063c31c9c071461044a578063c5abc9cd14610315578063e4102ad214610196578063e48603391461011b5763fb218b231461008257600080fd5b346101165760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576100b9610986565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610116576040916100e691611708565b610114825180926020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565bf35b600080fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610167610986565b166000526000602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff811161011657366023820112156101165780600401356101f081610a3f565b916101fe6040519384610945565b818352602460e06020850193028201019036821161011657602401915b81831061027e578361022d815161164a565b9060005b815181101561026c578061025061024a600193856116c5565b51610b02565b61025a82866116c5565b5261026581856116c5565b5001610231565b6040518061027a8582610a57565b0390f35b600060e08436031261031257506040519061029882610929565b6102a1846109a9565b82526102af602085016109a9565b60208301526102c0604085016109a9565b604083015260608401359062ffffff821682036101165782602092606060e09501526102ee608087016109a9565b608082015260a086013560a082015260c086013560c082015281520192019161021b565b80fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff8111610116573660238201121561011657806004013561036f81610a3f565b9161037d6040519384610945565b8183526024602084019260061b8201019036821161011657602401915b81831061040b57836103ac815161164a565b9060005b815181101561026c57806103ef6103c9600193856116c5565b5173ffffffffffffffffffffffffffffffffffffffff6020818351169201511690611708565b6103f982866116c5565b5261040481856116c5565b50016103b0565b60408336031261011657602060409182516104258161090d565b61042e866109a9565b815261043b8387016109a9565b8382015281520192019161039a565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff81116101165760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc823603011261011657604051906080820182811067ffffffffffffffff8211176106ee57604052610550816004016109a9565b8252602481013567ffffffffffffffff81116101165761057690600436918401016109ca565b9060208301918252604481013567ffffffffffffffff8111610116576105a4606491600436918501016109ca565b9160408501928352013560ff81168103610116576060840190815273ffffffffffffffffffffffffffffffffffffffff604060008287511681528060205220541692831561060e575b60208473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b519151905160405193509091610f088085019260ff169167ffffffffffffffff8411868510176106ee5785946106576106659260409461200289396060875260608701906115eb565b9085820360208701526115eb565b92015203906000f09081156106e2578173ffffffffffffffffffffffffffffffffffffffff6020939251166000526000835273ffffffffffffffffffffffffffffffffffffffff604060002091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558280806105ed565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610769610986565b1660005260016020526040806000205460ff82519173ffffffffffffffffffffffffffffffffffffffff8116835260a01c1615156020820152f35b346101165760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576040516107df81610929565b60043573ffffffffffffffffffffffffffffffffffffffff8116810361011657815260243573ffffffffffffffffffffffffffffffffffffffff8116810361011657602082015260443573ffffffffffffffffffffffffffffffffffffffff8116810361011657604082015260643562ffffff8116810361011657606082015260843573ffffffffffffffffffffffffffffffffffffffff8116810361011657816100e6916080604094015260a43560a082015260c43560c0820152610b02565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6040810190811067ffffffffffffffff8211176106ee57604052565b60e0810190811067ffffffffffffffff8211176106ee57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106ee57604052565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b81601f820112156101165780359067ffffffffffffffff82116106ee5760405192610a1d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610945565b8284526020838301011161011657816000926020809301838601378301015290565b67ffffffffffffffff81116106ee5760051b60200190565b602060408183019282815284518094520192019060005b818110610a7b5750505090565b9091926020604082610ab260019488516020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565b019401929101610a6e565b60405190610aca8261090d565b60006020838281520152565b90816020910312610116575173ffffffffffffffffffffffffffffffffffffffff811681036101165790565b90610b0b610abd565b50815173ffffffffffffffffffffffffffffffffffffffff6000911681526001602052604081209260405193610b408561090d565b549360ff73ffffffffffffffffffffffffffffffffffffffff86169586835260a01c16151560208201529315610b74575050565b9190925073ffffffffffffffffffffffffffffffffffffffff60208301511683528260205273ffffffffffffffffffffffffffffffffffffffff6040842054169273ffffffffffffffffffffffffffffffffffffffff60408401511681528060205273ffffffffffffffffffffffffffffffffffffffff60408220541680851561158d57801561152f5760a0850151621b13d1810290808204621b13d1149015171561150257606490049060c0860151621b13d1810290808204621b13d114901517156114d55760649004968773ffffffffffffffffffffffffffffffffffffffff608089015116908383119586611461575b505060608801516040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152938316602485015262ffffff166044840152811660648301527f0000000000000000000000000000000000000000000000000000000000000000169060208160848188865af1908115611456579073ffffffffffffffffffffffffffffffffffffffff918691611437575b50169260405190610d2c8261090d565b8482526020820190815273ffffffffffffffffffffffffffffffffffffffff829851168652600160205273ffffffffffffffffffffffffffffffffffffffff8060408820935116167fffffffffffffffffffffffff00000000000000000000000000000000000000008354161782555115157fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b1691161790557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276e092620d89206040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa80156106e25773ffffffffffffffffffffffffffffffffffffffff91600091611418575b5016986040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa80156106e25773ffffffffffffffffffffffffffffffffffffffff916000916113e9575b5016958a3b15610116576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018790526000818d8183816044810103925af180156106e2576113d2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018790526020818d818c816044810103925af180156112e75761139b575b50863b15611397576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838c5af180156112e757908991611382575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018390526020816044818c8c5af180156112e75761134b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481885afa9182156112e75789926112fa575b508161107060049695949361107693611f49565b93611f49565b90339333156112f2575b602090604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156112e75789956112b6575b506040519661016088019c8d67ffffffffffffffff8a8210911117611289578a9b9c9d60409b9a9b52885260208801998a52604088019562ffffff168652606088019360020b8452608088019260020b835260a0880190815260c0880191825260e08801928984526101008901948a86526101208a019673ffffffffffffffffffffffffffffffffffffffff1687526101408a01974289526040519c8d9b7f88316456000000000000000000000000000000000000000000000000000000008d525173ffffffffffffffffffffffffffffffffffffffff1660048d01525173ffffffffffffffffffffffffffffffffffffffff1660248c01525162ffffff1660448b01525160020b60648a01525160020b60848901525160a48801525160c48701525160e4860152516101048501525173ffffffffffffffffffffffffffffffffffffffff1661012484015251610144830152815a9361016492608095f1801561127e57611229575050565b6080813d608011611276575b8161124260809383610945565b81010312611272578051916020820151906fffffffffffffffffffffffffffffffff821682036103125750505050565b5080fd5b3d9150611235565b6040513d84823e3d90fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6112d991955060203d6020116112e0575b6112d18183610945565b810190611f2e565b93386110bd565b503d6112c7565b6040513d8b823e3d90fd5b309450611080565b9091506020813d602011611343575b8161131660209383610945565b8101031261133f5760049493929161107061133361107693611f04565b9394959650509061105c565b8880fd5b3d9150611309565b6020813d60201161137a575b8161136460209383610945565b8101031261133f5761137590611f21565b61101d565b3d9150611357565b8161138c91610945565b611397578738610fbd565b8780fd5b6020813d6020116113ca575b816113b460209383610945565b8101031261133f576113c590611f21565b610f6b565b3d91506113a7565b6113e0919850600090610945565b60009638610f07565b61140b915060203d602011611411575b6114038183610945565b810190610ad6565b38610eb0565b503d6113f9565b611431915060203d602011611411576114038183610945565b38610e5a565b611450915060203d602011611411576114038183610945565b38610d1c565b6040513d87823e3d90fd5b9499509391925080156114a85773ffffffffffffffffffffffffffffffffffffffff8091780100000000000000000000000000000000000000000000000004169038610c67565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e31206e6f74206d6972726f726564000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e30206e6f74206d6972726f726564000000000000000000000000006044820152fd5b919082519283825260005b8481106116355750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016115f6565b9061165482610a3f565b6116616040519182610945565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061168f8294610a3f565b019060005b8281106116a057505050565b6020906040516116af8161090d565b6000815260008382015282828501015201611694565b80518210156116d95760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff90929192611729610abd565b501660005260016020526040600020604051906117458261090d565b549273ffffffffffffffffffffffffffffffffffffffff84169384835260ff602084019160a01c161515815282941561184457516117c1575b73ffffffffffffffffffffffffffffffffffffffff6117bf9251167f0000000000000000000000000000000000000000000000000000000000000000611945565b565b73ffffffffffffffffffffffffffffffffffffffff16908115611815579078010000000000000000000000000000000000000000000000000473ffffffffffffffffffffffffffffffffffffffff1661177e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f74206d6972726f72656400000000000000000000000000000000000000006044820152fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff8313176118dc57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008312176118dc57565b92919073ffffffffffffffffffffffffffffffffffffffff60009116604051927f3850c7bd00000000000000000000000000000000000000000000000000000000845260e084600481855afa938415611ef9578394611e3b575b5073ffffffffffffffffffffffffffffffffffffffff9384169316838114611e33576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115611d67579073ffffffffffffffffffffffffffffffffffffffff918591611e14575b50166040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156114565773ffffffffffffffffffffffffffffffffffffffff929183918791611df5575b501683871115611ded578382975b1015611de55750945b1695863b15611de1576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526c1000000000000000000000000060248201528481604481838c5af1801561145657611db9575b5073ffffffffffffffffffffffffffffffffffffffff16916040517f095ea7b30000000000000000000000000000000000000000000000000000000081528360048201526c100000000000000000000000006024820152602081604481888c5af1801561145657611d72575b5090602060049392604051948580927fddca3f430000000000000000000000000000000000000000000000000000000082525afa928315611d67578493611d46575b506040519261010084019784891067ffffffffffffffff8a1117611d1957859697986040528452602084019673ffffffffffffffffffffffffffffffffffffffff168752604084019062ffffff168152606084013381526080850142815260a08601916c10000000000000000000000000835260c087019388855260e088019586526040519a8b987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e4830152815a9361010492602095f18015611d0c57611cdf575050565b6020823d602011611d04575b81611cf860209383610945565b81010312610312575050565b3d9150611ceb565b50604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b611d6091935060203d6020116112e0576112d18183610945565b9138611b8e565b6040513d86823e3d90fd5b6020813d602011611db1575b81611d8b60209383610945565b81010312611dad576004939291611da3602092611f21565b5091929350611b4c565b8480fd5b3d9150611d7e565b93611dda8173ffffffffffffffffffffffffffffffffffffffff9396610945565b9390611ae0565b8380fd5b905094611a84565b838197611a7b565b611e0e915060203d602011611411576114038183610945565b38611a6d565b611e2d915060203d602011611411576114038183610945565b38611a15565b505050509050565b90935060e0813d60e011611ef1575b81611e5760e09383610945565b81010312611eed5780519073ffffffffffffffffffffffffffffffffffffffff82168203611de157611e8b60208201611f04565b50611e9860408201611f12565b50611ea560608201611f12565b50611eb260808201611f12565b5060a081015160ff811603611de15773ffffffffffffffffffffffffffffffffffffffff91611ee460c0849301611f21565b5094915061199f565b8280fd5b3d9150611e4a565b6040513d85823e3d90fd5b51908160020b820361011657565b519061ffff8216820361011657565b5190811515820361011657565b90816020910312610116575162ffffff811681036101165790565b8060020b918060020b80156118155760008185079412600014611fca578360020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146118dc57600290600003910560020b9060020b1315600014611fb7575090611fb49161190b565b90565b611fb492611fc4916118a2565b9061190b565b6002906000949394500560020b8260020b13600014611ff757611fb49291611ff19161190b565b906118a2565b50611fb49161190b56fe60806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a2646970667358221220e7779024c041f65e27f0188b8bd3dbdbeeeab3b97715464de1553712698e207c64736f6c634300081a0033","sourceMap":"571:5335:79:-:0;;;;;;;;;;;;;-1:-1:-1;;571:5335:79;;;;-1:-1:-1;;;;;571:5335:79;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;571:5335:79;;;;;;;;;;-1:-1:-1;;;;;571:5335:79;;;;;;1173:12;;1195:24;;571:5335;;;;;;;;1173:12;571:5335;;;;;;;;;;1195:24;571:5335;;;;;;;;;;;;-1:-1:-1;571:5335:79;;;;;;-1:-1:-1;571:5335:79;;;;;-1:-1:-1;571:5335:79","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c9081637303e913146108a0575080639949e04f146107a4578063a4063dbc1461071d578063b4a14b15146104b9578063c31c9c071461044a578063c5abc9cd14610315578063e4102ad214610196578063e48603391461011b5763fb218b231461008257600080fd5b346101165760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576100b9610986565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610116576040916100e691611708565b610114825180926020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565bf35b600080fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610167610986565b166000526000602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff811161011657366023820112156101165780600401356101f081610a3f565b916101fe6040519384610945565b818352602460e06020850193028201019036821161011657602401915b81831061027e578361022d815161164a565b9060005b815181101561026c578061025061024a600193856116c5565b51610b02565b61025a82866116c5565b5261026581856116c5565b5001610231565b6040518061027a8582610a57565b0390f35b600060e08436031261031257506040519061029882610929565b6102a1846109a9565b82526102af602085016109a9565b60208301526102c0604085016109a9565b604083015260608401359062ffffff821682036101165782602092606060e09501526102ee608087016109a9565b608082015260a086013560a082015260c086013560c082015281520192019161021b565b80fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff8111610116573660238201121561011657806004013561036f81610a3f565b9161037d6040519384610945565b8183526024602084019260061b8201019036821161011657602401915b81831061040b57836103ac815161164a565b9060005b815181101561026c57806103ef6103c9600193856116c5565b5173ffffffffffffffffffffffffffffffffffffffff6020818351169201511690611708565b6103f982866116c5565b5261040481856116c5565b50016103b0565b60408336031261011657602060409182516104258161090d565b61042e866109a9565b815261043b8387016109a9565b8382015281520192019161039a565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760043567ffffffffffffffff81116101165760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc823603011261011657604051906080820182811067ffffffffffffffff8211176106ee57604052610550816004016109a9565b8252602481013567ffffffffffffffff81116101165761057690600436918401016109ca565b9060208301918252604481013567ffffffffffffffff8111610116576105a4606491600436918501016109ca565b9160408501928352013560ff81168103610116576060840190815273ffffffffffffffffffffffffffffffffffffffff604060008287511681528060205220541692831561060e575b60208473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b519151905160405193509091610f088085019260ff169167ffffffffffffffff8411868510176106ee5785946106576106659260409461200289396060875260608701906115eb565b9085820360208701526115eb565b92015203906000f09081156106e2578173ffffffffffffffffffffffffffffffffffffffff6020939251166000526000835273ffffffffffffffffffffffffffffffffffffffff604060002091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558280806105ed565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346101165760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165773ffffffffffffffffffffffffffffffffffffffff610769610986565b1660005260016020526040806000205460ff82519173ffffffffffffffffffffffffffffffffffffffff8116835260a01c1615156020820152f35b346101165760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610116576040516107df81610929565b60043573ffffffffffffffffffffffffffffffffffffffff8116810361011657815260243573ffffffffffffffffffffffffffffffffffffffff8116810361011657602082015260443573ffffffffffffffffffffffffffffffffffffffff8116810361011657604082015260643562ffffff8116810361011657606082015260843573ffffffffffffffffffffffffffffffffffffffff8116810361011657816100e6916080604094015260a43560a082015260c43560c0820152610b02565b346101165760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101165760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6040810190811067ffffffffffffffff8211176106ee57604052565b60e0810190811067ffffffffffffffff8211176106ee57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106ee57604052565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011657565b81601f820112156101165780359067ffffffffffffffff82116106ee5760405192610a1d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610945565b8284526020838301011161011657816000926020809301838601378301015290565b67ffffffffffffffff81116106ee5760051b60200190565b602060408183019282815284518094520192019060005b818110610a7b5750505090565b9091926020604082610ab260019488516020809173ffffffffffffffffffffffffffffffffffffffff815116845201511515910152565b019401929101610a6e565b60405190610aca8261090d565b60006020838281520152565b90816020910312610116575173ffffffffffffffffffffffffffffffffffffffff811681036101165790565b90610b0b610abd565b50815173ffffffffffffffffffffffffffffffffffffffff6000911681526001602052604081209260405193610b408561090d565b549360ff73ffffffffffffffffffffffffffffffffffffffff86169586835260a01c16151560208201529315610b74575050565b9190925073ffffffffffffffffffffffffffffffffffffffff60208301511683528260205273ffffffffffffffffffffffffffffffffffffffff6040842054169273ffffffffffffffffffffffffffffffffffffffff60408401511681528060205273ffffffffffffffffffffffffffffffffffffffff60408220541680851561158d57801561152f5760a0850151621b13d1810290808204621b13d1149015171561150257606490049060c0860151621b13d1810290808204621b13d114901517156114d55760649004968773ffffffffffffffffffffffffffffffffffffffff608089015116908383119586611461575b505060608801516040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152938316602485015262ffffff166044840152811660648301527f0000000000000000000000000000000000000000000000000000000000000000169060208160848188865af1908115611456579073ffffffffffffffffffffffffffffffffffffffff918691611437575b50169260405190610d2c8261090d565b8482526020820190815273ffffffffffffffffffffffffffffffffffffffff829851168652600160205273ffffffffffffffffffffffffffffffffffffffff8060408820935116167fffffffffffffffffffffffff00000000000000000000000000000000000000008354161782555115157fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b1691161790557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276e092620d89206040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa80156106e25773ffffffffffffffffffffffffffffffffffffffff91600091611418575b5016986040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa80156106e25773ffffffffffffffffffffffffffffffffffffffff916000916113e9575b5016958a3b15610116576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018790526000818d8183816044810103925af180156106e2576113d2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018790526020818d818c816044810103925af180156112e75761139b575b50863b15611397576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838c5af180156112e757908991611382575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481018390526020816044818c8c5af180156112e75761134b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481885afa9182156112e75789926112fa575b508161107060049695949361107693611f49565b93611f49565b90339333156112f2575b602090604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156112e75789956112b6575b506040519661016088019c8d67ffffffffffffffff8a8210911117611289578a9b9c9d60409b9a9b52885260208801998a52604088019562ffffff168652606088019360020b8452608088019260020b835260a0880190815260c0880191825260e08801928984526101008901948a86526101208a019673ffffffffffffffffffffffffffffffffffffffff1687526101408a01974289526040519c8d9b7f88316456000000000000000000000000000000000000000000000000000000008d525173ffffffffffffffffffffffffffffffffffffffff1660048d01525173ffffffffffffffffffffffffffffffffffffffff1660248c01525162ffffff1660448b01525160020b60648a01525160020b60848901525160a48801525160c48701525160e4860152516101048501525173ffffffffffffffffffffffffffffffffffffffff1661012484015251610144830152815a9361016492608095f1801561127e57611229575050565b6080813d608011611276575b8161124260809383610945565b81010312611272578051916020820151906fffffffffffffffffffffffffffffffff821682036103125750505050565b5080fd5b3d9150611235565b6040513d84823e3d90fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6112d991955060203d6020116112e0575b6112d18183610945565b810190611f2e565b93386110bd565b503d6112c7565b6040513d8b823e3d90fd5b309450611080565b9091506020813d602011611343575b8161131660209383610945565b8101031261133f5760049493929161107061133361107693611f04565b9394959650509061105c565b8880fd5b3d9150611309565b6020813d60201161137a575b8161136460209383610945565b8101031261133f5761137590611f21565b61101d565b3d9150611357565b8161138c91610945565b611397578738610fbd565b8780fd5b6020813d6020116113ca575b816113b460209383610945565b8101031261133f576113c590611f21565b610f6b565b3d91506113a7565b6113e0919850600090610945565b60009638610f07565b61140b915060203d602011611411575b6114038183610945565b810190610ad6565b38610eb0565b503d6113f9565b611431915060203d602011611411576114038183610945565b38610e5a565b611450915060203d602011611411576114038183610945565b38610d1c565b6040513d87823e3d90fd5b9499509391925080156114a85773ffffffffffffffffffffffffffffffffffffffff8091780100000000000000000000000000000000000000000000000004169038610c67565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e31206e6f74206d6972726f726564000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f746f6b656e30206e6f74206d6972726f726564000000000000000000000000006044820152fd5b919082519283825260005b8481106116355750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016115f6565b9061165482610a3f565b6116616040519182610945565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061168f8294610a3f565b019060005b8281106116a057505050565b6020906040516116af8161090d565b6000815260008382015282828501015201611694565b80518210156116d95760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff90929192611729610abd565b501660005260016020526040600020604051906117458261090d565b549273ffffffffffffffffffffffffffffffffffffffff84169384835260ff602084019160a01c161515815282941561184457516117c1575b73ffffffffffffffffffffffffffffffffffffffff6117bf9251167f0000000000000000000000000000000000000000000000000000000000000000611945565b565b73ffffffffffffffffffffffffffffffffffffffff16908115611815579078010000000000000000000000000000000000000000000000000473ffffffffffffffffffffffffffffffffffffffff1661177e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f74206d6972726f72656400000000000000000000000000000000000000006044820152fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff8313176118dc57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008312176118dc57565b92919073ffffffffffffffffffffffffffffffffffffffff60009116604051927f3850c7bd00000000000000000000000000000000000000000000000000000000845260e084600481855afa938415611ef9578394611e3b575b5073ffffffffffffffffffffffffffffffffffffffff9384169316838114611e33576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115611d67579073ffffffffffffffffffffffffffffffffffffffff918591611e14575b50166040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156114565773ffffffffffffffffffffffffffffffffffffffff929183918791611df5575b501683871115611ded578382975b1015611de55750945b1695863b15611de1576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526c1000000000000000000000000060248201528481604481838c5af1801561145657611db9575b5073ffffffffffffffffffffffffffffffffffffffff16916040517f095ea7b30000000000000000000000000000000000000000000000000000000081528360048201526c100000000000000000000000006024820152602081604481888c5af1801561145657611d72575b5090602060049392604051948580927fddca3f430000000000000000000000000000000000000000000000000000000082525afa928315611d67578493611d46575b506040519261010084019784891067ffffffffffffffff8a1117611d1957859697986040528452602084019673ffffffffffffffffffffffffffffffffffffffff168752604084019062ffffff168152606084013381526080850142815260a08601916c10000000000000000000000000835260c087019388855260e088019586526040519a8b987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e4830152815a9361010492602095f18015611d0c57611cdf575050565b6020823d602011611d04575b81611cf860209383610945565b81010312610312575050565b3d9150611ceb565b50604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b611d6091935060203d6020116112e0576112d18183610945565b9138611b8e565b6040513d86823e3d90fd5b6020813d602011611db1575b81611d8b60209383610945565b81010312611dad576004939291611da3602092611f21565b5091929350611b4c565b8480fd5b3d9150611d7e565b93611dda8173ffffffffffffffffffffffffffffffffffffffff9396610945565b9390611ae0565b8380fd5b905094611a84565b838197611a7b565b611e0e915060203d602011611411576114038183610945565b38611a6d565b611e2d915060203d602011611411576114038183610945565b38611a15565b505050509050565b90935060e0813d60e011611ef1575b81611e5760e09383610945565b81010312611eed5780519073ffffffffffffffffffffffffffffffffffffffff82168203611de157611e8b60208201611f04565b50611e9860408201611f12565b50611ea560608201611f12565b50611eb260808201611f12565b5060a081015160ff811603611de15773ffffffffffffffffffffffffffffffffffffffff91611ee460c0849301611f21565b5094915061199f565b8280fd5b3d9150611e4a565b6040513d85823e3d90fd5b51908160020b820361011657565b519061ffff8216820361011657565b5190811515820361011657565b90816020910312610116575162ffffff811681036101165790565b8060020b918060020b80156118155760008185079412600014611fca578360020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146118dc57600290600003910560020b9060020b1315600014611fb7575090611fb49161190b565b90565b611fb492611fc4916118a2565b9061190b565b6002906000949394500560020b8260020b13600014611ff757611fb49291611ff19161190b565b906118a2565b50611fb49161190b56fe60806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a2646970667358221220e7779024c041f65e27f0188b8bd3dbdbeeeab3b97715464de1553712698e207c64736f6c634300081a0033","sourceMap":"571:5335:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4691:27;571:5335;;4691:27;:::i;:::-;4733:8;571:5335;4758:3;571:5335;;4743:13;;;;;4797:7;4786:19;4797:7;571:5335;4797:7;;;:::i;:::-;;4786:19;:::i;:::-;4776:29;;;;:::i;:::-;;;;;;:::i;:::-;;571:5335;4733:8;;4743:13;571:5335;;;;4743:13;571:5335;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5696:28;571:5335;;5696:28;:::i;:::-;5739:8;571:5335;5765:3;571:5335;;5749:14;;;;;5814:8;5846:40;5814:8;571:5335;5814:8;;;:::i;:::-;;571:5335;;;;;;5868:17;;571:5335;;5846:40;;:::i;:::-;5836:50;;;;:::i;:::-;;;;;;:::i;:::-;;571:5335;5739:8;;571:5335;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1044:39;571:5335;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1581:27;;;1576:423;;571:5335;;;;;;;;;;;1576:423;1820:9;1831:11;;571:5335;;;;;-1:-1:-1;1831:11:79;;1806:52;;;;;571:5335;;;;1806:52;;;;;;;;;;571:5335;;1806:52;571:5335;1806:52;;;;571:5335;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;1806:52;;571:5335;1806:52;;;;;;1799:59;571:5335;;1799:59;571:5335;;;;;;;;;;;;;;;;;;;;;1576:423;;;;;1806:52;571:5335;;;;;;;;;1806:52;571:5335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;936:46;571:5335;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;989:49;571:5335;989:49;571:5335;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;571:5335:79;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;571:5335:79;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2399:2182::-;;571:5335;;:::i;:::-;;;;;-1:-1:-1;571:5335:79;;;;2592:5;571:5335;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;2667:32;;2662:1872;;2399:2182;;:::o;2662:1872::-;2794:11;;;;571:5335;;2794:11;;571:5335;;;;;;;;;;;;;2846:11;571:5335;;2846:11;;571:5335;;;;;;;;;;;;;;3070:27;;571:5335;;3143:27;;571:5335;;;3303:12;;571:5335;3318:7;571:5335;;;;;;3318:7;571:5335;;;;;;;3328:3;571:5335;;3363:12;;;;571:5335;3318:7;571:5335;;;;;;3318:7;571:5335;;;;;;;3328:3;571:5335;;;;;3428:17;;;571:5335;;3475:15;;;;3558:219;;;;2662:1872;-1:-1:-1;;4130:8:79;;;571:5335;;;;4039:114;;571:5335;;;;4039:114;;;571:5335;;;;;;;;;;;;;;;;3328:3;571:5335;;;4039:4;571:5335;;;;4039:114;571:5335;4039:114;571:5335;4039:114;;;;;;;;571:5335;4039:114;;;;;2662:1872;571:5335;;;;;;;;;:::i;:::-;;;;;4175:28;;571:5335;;;;4168:35;571:5335;;;;;2592:5;571:5335;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:7:41;;637:9;571:5335:79;;;6030:13:81;;571:5335:79;6030:13:81;4039:114:79;6030:13:81;;;;;;;;571:5335:79;6030:13:81;-1:-1:-1;6030:13:81;;;2662:1872:79;571:5335;;;;;;6083:13:81;;571:5335:79;6083:13:81;4039:114:79;6083:13:81;;;;;;;;571:5335:79;6083:13:81;-1:-1:-1;6083:13:81;;;2662:1872:79;571:5335;;6107:40:81;;;;;;571:5335:79;;;6107:40:81;;6127:4;4039:114:79;6107:40:81;;571:5335:79;;;;;;;-1:-1:-1;571:5335:79;6127:4:81;571:5335:79;-1:-1:-1;571:5335:79;;;;6107:40:81;;;;;;;;;;2662:1872:79;-1:-1:-1;571:5335:79;;;6157:43:81;;571:5335:79;;;4039:114;6157:43:81;;571:5335:79;;;;;;;;;6157:43:81;571:5335:79;6157:43:81;571:5335:79;;;;6157:43:81;;;;;;;;;;2662:1872:79;6251:40:81;;;;;;571:5335:79;;;6251:40:81;;6127:4;4039:114:79;6251:40:81;;571:5335:79;;;;;;;6127:4:81;571:5335:79;;;6127:4:81;6251:40;;;;;;;;;;;;2662:1872:79;-1:-1:-1;;571:5335:79;;;6301:43:81;;571:5335:79;;;4039:114;6301:43:81;;571:5335:79;;;;;;;;;;;6301:43:81;;;;;;;;;;2662:1872:79;571:5335;;;6856:18:81;571:5335:79;6856:18:81;;571:5335:79;6856:18:81;4039:114:79;6856:18:81;;;;;;;;;;;;;2662:1872:79;6892:25:81;;;4039:114:79;6892:25:81;;;;6935;6892;;:::i;:::-;6935;;:::i;:::-;7093:10;;;;7117:23;7113:214;;2662:1872:79;571:5335;;;;7478:10:81;;;;571:5335:79;7478:10:81;;;;;;;;;;;;;2662:1872:79;571:5335;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7392:194:81;;571:5335:79;;;;7392:194:81;;571:5335:79;;;;;4130:8;7392:194:81;;571:5335:79;;;;;3428:17;7392:194:81;;571:5335:79;;;;;;7392:194:81;;571:5335:79;;;3363:12;7392:194:81;;571:5335:79;;;;7392:194:81;;571:5335:79;;;;7392:194:81;;;571:5335:79;;;;7392:194:81;;;571:5335:79;;;;;7392:194:81;;;7561:15;;571:5335:79;;;;7637:17:81;;;571:5335:79;7637:17:81;;571:5335:79;;;4039:114;7637:17:81;;571:5335:79;;;;;;;;;;;;;;;;;;3328:3;571:5335;;;;;;4039:114;571:5335;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:17:81;;;;;3428::79;7637::81;;;;;;;;2399:2182:79;;:::o;7637:17:81:-;3428::79;7637::81;;3428::79;7637::81;;;;;;3428::79;7637::81;;;:::i;:::-;;;571:5335:79;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2399:2182:79:o;571:5335::-;;;;7637:17:81;;;-1:-1:-1;7637:17:81;;;571:5335:79;;;;;;;;;;;;;;;;4039:114;571:5335;;7478:10:81;;;;;571:5335:79;7478:10:81;571:5335:79;7478:10:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;571:5335:79;;;;;;;;;7113:214:81;6127:4;;-1:-1:-1;7113:214:81;;6856:18;;;;571:5335:79;6856:18:81;;571:5335:79;6856:18:81;;;;;;571:5335:79;6856:18:81;;;:::i;:::-;;;571:5335:79;;;;4039:114;571:5335;;;;6892:25:81;571:5335:79;6935:25:81;571:5335:79;;:::i;:::-;6856:18:81;;;;;;;;;571:5335:79;;;;6856:18:81;;;-1:-1:-1;6856:18:81;;6301:43;571:5335:79;6301:43:81;;571:5335:79;6301:43:81;;;;;;571:5335:79;6301:43:81;;;:::i;:::-;;;571:5335:79;;;;;;;:::i;:::-;6301:43:81;;;;;-1:-1:-1;6301:43:81;;6251:40;;;;;:::i;:::-;571:5335:79;;6251:40:81;;;;571:5335:79;;;;6157:43:81;571:5335:79;6157:43:81;;571:5335:79;6157:43:81;;;;;;571:5335:79;6157:43:81;;;:::i;:::-;;;571:5335:79;;;;;;;:::i;:::-;6157:43:81;;;;;-1:-1:-1;6157:43:81;;6107:40;;;;;-1:-1:-1;6107:40:81;;:::i;:::-;-1:-1:-1;6107:40:81;;;;6083:13;;;;571:5335:79;6083:13:81;571:5335:79;6083:13:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;6030;;;;571:5335:79;6030:13:81;571:5335:79;6030:13:81;;;;;;;:::i;:::-;;;;4039:114:79;;;;571:5335;4039:114;571:5335;4039:114;;;;;;;:::i;:::-;;;;;571:5335;;;;;;;;;3558:219;3591:35;;-1:-1:-1;3591:35:79;;;-1:-1:-1;571:5335:79;;;;;;;3724:13;571:5335;;3558:219;;;;571:5335;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;571:5335:79;;;;;;;;;;;-1:-1:-1;571:5335:79;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;571:5335:79;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;571:5335:79;;-1:-1:-1;571:5335:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;4890:595;571:5335;4890:595;;;;571:5335;;:::i;:::-;;;-1:-1:-1;571:5335:79;5085:5;571:5335;;;-1:-1:-1;571:5335:79;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;5078:18;5115:32;;571:5335;;;5175:197;;4890:595;571:5335;5425:12;571:5335;;;5402:10;5425:12;:::i;:::-;4890:595::o;5175:197::-;571:5335;;;;;;;5175:197;5322:13;571:5335;;;5175:197;;571:5335;;-1:-1:-1;571:5335:79;;;;;-1:-1:-1;571:5335:79;;;;;;;;;;;;;;;;;;;;;;;;477:7:41;;571:5335:79;;;;;477:7:41;;;;;;;;;;;:::o;:::-;571:5335:79;;;;;;;;;637:9:41;;571:5335:79;;;;;637:9:41;;;;;;;;;;;:::o;2906:916:81:-;;;;571:5335:79;-1:-1:-1;571:5335:79;;;;2705:12:81;571:5335:79;2705:12:81;;571:5335:79;2705:12:81;;;;;;;;;;;;;;;2906:916;-1:-1:-1;571:5335:79;;;;;;3175:29:81;;;3171:113;;571:5335:79;;;3322:13:81;;;;2705:12;3322:13;;;;;;;;;;571:5335:79;3322:13:81;;;;;2906:916;571:5335:79;;;;;3375:13:81;;3322;3375;2705:12;3375:13;;;;;;;;;571:5335:79;3375:13:81;;;;;;;;2906:916;-1:-1:-1;571:5335:79;3419:28:81;;;;;;:68;;;;3518:28;;;;:68;;;571:5335:79;3709:33:81;;;;;;571:5335:79;;;3709:33:81;;3730:4;2705:12;3709:33;;571:5335:79;3693:6:81;571:5335:79;;;;3709:33:81;;;;;;;;;;;;;;3518:68;571:5335:79;;;;;;;1897:43:81;;;2705:12;1897:43;;571:5335:79;3693:6:81;571:5335:79;;;;3322:13:81;1897:43;3709:33;1897:43;;;;;;;;;;;3518:68;571:5335:79;;3322:13:81;2705:12;571:5335:79;;;;2448:10:81;;;;571:5335:79;2448:10:81;;;;;;;;;;;;;3518:68;571:5335:79;;;;;;;;;;;;;;;;;;;;;;;;;3322:13:81;2363:166;;571:5335:79;;;;;;2363:166:81;;571:5335:79;;;;;2363:166:81;;;2460:10;571:5335:79;;2363:166:81;;;2472:15;571:5335:79;;2363:166:81;;;571:5335:79;3693:6:81;571:5335:79;;2363:166:81;;;571:5335:79;;;;;2363:166:81;;571:5335:79;;;;;2546:32:81;;;571:5335:79;2546:32:81;;571:5335:79;;;2705:12:81;2546:32;;571:5335:79;;;;;;;;;;;3709:33:81;571:5335:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2546:32:81;;;;;3322:13;2546:32;;;;;;;;2906:916;;:::o;2546:32::-;3322:13;2546:32;;3322:13;2546:32;;;;;;3322:13;2546:32;;;:::i;:::-;;;571:5335:79;;;;-1:-1:-1;;2906:916:81:o;2546:32::-;;;-1:-1:-1;2546:32:81;;;571:5335:79;;;;;;;;;;;;;;;;;;2705:12:81;571:5335:79;;2448:10:81;;;;;3322:13;2448:10;3322:13;2448:10;;;;;;;:::i;:::-;;;;;;571:5335:79;;;;;;;;;1897:43:81;3322:13;1897:43;;3322:13;1897:43;;;;;;3322:13;1897:43;;;:::i;:::-;;;571:5335:79;;;;2705:12:81;571:5335:79;;;;3322:13:81;571:5335:79;;:::i;:::-;1897:43:81;;;;;;;571:5335:79;;;;1897:43:81;;;-1:-1:-1;1897:43:81;;3709:33;;;;571:5335:79;3709:33:81;;;:::i;:::-;;;;;;571:5335:79;;;3518:68:81;;;;;;3419;;;;;;3375:13;;;;3322;3375;3322;3375;;;;;;;:::i;:::-;;;;3322;;;;;;;;;;;;;;:::i;:::-;;;;3171:113;3267:7;;;;;;:::o;2705:12::-;;;;571:5335:79;2705:12:81;;571:5335:79;2705:12:81;;;;;;571:5335:79;2705:12:81;;;:::i;:::-;;;571:5335:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2705:12:81;;;;;571:5335:79;;;;2705:12:81;;;-1:-1:-1;2705:12:81;;;571:5335:79;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;602:346:66:-;571:5335:79;;;;;;;;;;;;;;;769:8:66;;765:176;571:5335:79;;;;;;686:23:81;;;;;571:5335:79;686:23:81;571:5335:79;686:23:81;807:10:66;571:5335:79;;;;;;798:19:66;;:56;807:10;;;820;;;;;:::i;:::-;791:63;:::o;798:56::-;833:21;841:12;;;;:::i;:::-;833:21;;:::i;765:176::-;571:5335:79;894:10:66;-1:-1:-1;894:10:66;;;571:5335:79;;;;;;;888:16:66;:53;894:10;;;907:21;915:12;;;;;:::i;:::-;907:21;;:::i;888:53::-;931:10;;;;:::i","linkReferences":{},"immutableReferences":{"54096":[{"start":2281,"length":32},{"start":3276,"length":32}],"54099":[{"start":1173,"length":32},{"start":6043,"length":32}]}},"methodIdentifiers":{"mirrorPool((address,address,address,uint24,uint160,uint256,uint256))":"9949e04f","mirrorPools((address,address,address,uint24,uint160,uint256,uint256)[])":"e4102ad2","mirrorToken((address,string,string,uint8))":"b4a14b15","nfpm()":"7303e913","pools(address)":"a4063dbc","swapRouter()":"c31c9c07","tokens(address)":"e4860339","updatePool(address,uint160)":"fb218b23","updatePools((address,uint160)[])":"c5abc9cd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"nfpm_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"internalType\":\"struct MirrorEnv.PoolInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"mirrorPool\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"inverted\",\"type\":\"bool\"}],\"internalType\":\"struct MirrorEnv.MockPool\",\"name\":\"mock\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"contract IERC20Metadata\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"internalType\":\"struct MirrorEnv.PoolInfo[]\",\"name\":\"pool\",\"type\":\"tuple[]\"}],\"name\":\"mirrorPools\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"inverted\",\"type\":\"bool\"}],\"internalType\":\"struct MirrorEnv.MockPool[]\",\"name\":\"mock\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"internalType\":\"struct MirrorEnv.TokenInfo\",\"name\":\"info\",\"type\":\"tuple\"}],\"name\":\"mirrorToken\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"mock\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nfpm\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"pools\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"inverted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20Metadata\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokens\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"updatePool\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"inverted\",\"type\":\"bool\"}],\"internalType\":\"struct MirrorEnv.MockPool\",\"name\":\"mock\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"internalType\":\"struct MirrorEnv.PoolUpdateInfo[]\",\"name\":\"infos\",\"type\":\"tuple[]\"}],\"name\":\"updatePools\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"inverted\",\"type\":\"bool\"}],\"internalType\":\"struct MirrorEnv.MockPool[]\",\"name\":\"mock\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MirrorEnv.sol\":\"MirrorEnv\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/more/MockERC20.sol\":{\"keccak256\":\"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca\",\"urls\":[\"bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a\",\"dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp\"]},\"test/MirrorEnv.sol\":{\"keccak256\":\"0xb981f398f6b133b561dd865f56327fea8571e5bc0faa5b7ad90c40879c94ab17\",\"urls\":[\"bzz-raw://a1d582d66785bd17273c626c9251a4e03dc0743628912eeba64c375514ae951d\",\"dweb:/ipfs/QmVfWLMvjozx5B35Ei5TcYdKFfesTsEzGAz2FbBx3uXwjW\"]},\"test/MockUtil.sol\":{\"keccak256\":\"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694\",\"urls\":[\"bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f\",\"dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract INonfungiblePositionManager","name":"nfpm_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"struct MirrorEnv.PoolInfo","name":"info","type":"tuple","components":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"contract IERC20Metadata","name":"token0","type":"address"},{"internalType":"contract IERC20Metadata","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"mirrorPool","outputs":[{"internalType":"struct MirrorEnv.MockPool","name":"mock","type":"tuple","components":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"bool","name":"inverted","type":"bool"}]}]},{"inputs":[{"internalType":"struct MirrorEnv.PoolInfo[]","name":"pool","type":"tuple[]","components":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"contract IERC20Metadata","name":"token0","type":"address"},{"internalType":"contract IERC20Metadata","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"mirrorPools","outputs":[{"internalType":"struct MirrorEnv.MockPool[]","name":"mock","type":"tuple[]","components":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"bool","name":"inverted","type":"bool"}]}]},{"inputs":[{"internalType":"struct MirrorEnv.TokenInfo","name":"info","type":"tuple","components":[{"internalType":"contract IERC20Metadata","name":"addr","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"mirrorToken","outputs":[{"internalType":"contract MockERC20","name":"mock","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nfpm","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"pools","outputs":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"bool","name":"inverted","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IERC20Metadata","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"tokens","outputs":[{"internalType":"contract MockERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"updatePool","outputs":[{"internalType":"struct MirrorEnv.MockPool","name":"mock","type":"tuple","components":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"bool","name":"inverted","type":"bool"}]}]},{"inputs":[{"internalType":"struct MirrorEnv.PoolUpdateInfo[]","name":"infos","type":"tuple[]","components":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}]}],"stateMutability":"nonpayable","type":"function","name":"updatePools","outputs":[{"internalType":"struct MirrorEnv.MockPool[]","name":"mock","type":"tuple[]","components":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"},{"internalType":"bool","name":"inverted","type":"bool"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/MirrorEnv.sol":"MirrorEnv"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/more/MockERC20.sol":{"keccak256":"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca","urls":["bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a","dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp"],"license":null},"test/MirrorEnv.sol":{"keccak256":"0xb981f398f6b133b561dd865f56327fea8571e5bc0faa5b7ad90c40879c94ab17","urls":["bzz-raw://a1d582d66785bd17273c626c9251a4e03dc0743628912eeba64c375514ae951d","dweb:/ipfs/QmVfWLMvjozx5B35Ei5TcYdKFfesTsEzGAz2FbBx3uXwjW"],"license":null},"test/MockUtil.sol":{"keccak256":"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694","urls":["bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f","dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi"],"license":null}},"version":1},"id":79} \ No newline at end of file diff --git a/deployment/arb1/out/MockERC20.sol/MockERC20.json b/deployment/arb1/out/MockERC20.sol/MockERC20.json deleted file mode 100644 index 3bb96eb..0000000 --- a/deployment/arb1/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":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"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":"mint","inputs":[{"name":"account","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":"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":"value","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":"value","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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033","sourceMap":"236:3144:76:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;236:3144:76;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;236:3144:76;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;236:3144:76;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;-1:-1:-1;;;;;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;757:20;236:3144;;;757:20;236:3144;-1:-1:-1;787:15:76;236:3144;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;-1:-1:-1;236:3144:76;;-1:-1:-1;236:3144:76;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;-1:-1:-1;236:3144:76;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;-1:-1:-1;236:3144:76;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;-1:-1:-1;236:3144:76;;;-1:-1:-1;236:3144:76;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;-1:-1:-1;;236:3144:76;;;-1:-1:-1;;;;;236:3144:76;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;236:3144:76;;;;;;;;-1:-1:-1;;236:3144:76;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033","sourceMap":"236:3144:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;1822:11;236:3144;;;;;;1822:27;236:3144;-1:-1:-1;236:3144:76;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;1628:36;236:3144;;:::i;:::-;;;1642:10;;1628:36;:::i;:::-;236:3144;;;;;;;;;;;;;;;;;;;;;;;;;368:20;236:3144;;;368:20;236:3144;368:20;236:3144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;368:20;236:3144;;;;-1:-1:-1;236:3144:76;;;;;;;-1:-1:-1;;236:3144:76;;;;;;;;;;;;;368:20;236:3144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1122:10;236:3144;;;;;;;;;;1112:31;236:3144;;1122:10;236:3144;;;;;;;;1154:31;236:3144;;;1154:31;:::i;:::-;236:3144;;;;;;;1228:4;1122:10;1200:41;236:3144;1122:10;1200:41;;236:3144;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;921:28;236:3144;;;921:28;:::i;:::-;236:3144;;;;;;;964:38;236:3144;981:4;964:38;;236:3144;;;;;;;;;;;;;;394:21;236:3144;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;2467:10;;:18;2463:348;;236:3144;;2827:30;;;;;:::i;2463:348::-;236:3144;;;;;2619:11;236:3144;;;;;;2467:10;236:3144;-1:-1:-1;236:3144:76;;;;-1:-1:-1;236:3144:76;;2610:38;;236:3144;;;;;2827:30;236:3144;;;2619:11;236:3144;;;;;;2467:10;236:3144;-1:-1:-1;236:3144:76;;;2726:17;236:3144;-1:-1:-1;236:3144:76;;2693:50;2689:111;;2463:348;;;;;;;;2689:111;236:3144;;2619:11;236:3144;;;;;;2467:10;236:3144;-1:-1:-1;236:3144:76;;;;-1:-1:-1;236:3144:76;2762:38;236:3144;;;2762:38;:::i;:::-;236:3144;;2689:111;;;236:3144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;421:26;236:3144;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2090:10;;236:3144;;2078:11;236:3144;;;;;;;;-1:-1:-1;236:3144:76;;;;;-1:-1:-1;236:3144:76;;;;;;;;2090:10;2133:36;236:3144;2090:10;2133:36;;236:3144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;236:3144:76;;;;;;-1:-1:-1;;236:3144:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;2870:507::-;236:3144;;;;-1:-1:-1;236:3144:76;3146:9;236:3144;;;;-1:-1:-1;236:3144:76;;3146:24;236:3144;;;;3276:23;236:3144;;-1:-1:-1;236:3144:76;3146:9;236:3144;;;-1:-1:-1;236:3144:76;3205:24;236:3144;;;3205:24;:::i;:::-;236:3144;;;;;-1:-1:-1;236:3144:76;3146:9;236:3144;;;-1:-1:-1;236:3144:76;3239:22;236:3144;;;3239:22;:::i;:::-;236:3144;;;;;;;3276:23;3366:4;2870:507;:::o;236:3144::-;;;;;;;;3146:9;236:3144;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":[{\"internalType\":\"address\",\"name\":\"account\",\"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\":[],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"stateVariables\":{\"decimals\":{\"return\":\"The number of decimal places the token has\",\"returns\":{\"_0\":\"The number of decimal places the token has\"}},\"name\":{\"return\":\"The name of the token\",\"returns\":{\"_0\":\"The name of the token\"}},\"symbol\":{\"return\":\"The symbol of the token\",\"returns\":{\"_0\":\"The symbol of the token\"}},\"totalSupply\":{\"details\":\"Returns the value of tokens in existence.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/more/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]},\"src/more/MockERC20.sol\":{\"keccak256\":\"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca\",\"urls\":[\"bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a\",\"dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":"value","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"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":[{"internalType":"address","name":"account","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":[],"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":"value","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":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/more/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null},"src/more/MockERC20.sol":{"keccak256":"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca","urls":["bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a","dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp"],"license":null}},"version":1},"id":76} \ No newline at end of file diff --git a/deployment/arb1/out/MockERC721.sol/IERC721TokenReceiver.json b/deployment/arb1/out/MockERC721.sol/IERC721TokenReceiver.json deleted file mode 100644 index 43e6848..0000000 --- a/deployment/arb1/out/MockERC721.sol/IERC721TokenReceiver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/mocks/MockERC721.sol\":\"IERC721TokenReceiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/mocks/MockERC721.sol":"IERC721TokenReceiver"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/deployment/arb1/out/MockERC721.sol/MockERC721.json b/deployment/arb1/out/MockERC721.sol/MockERC721.json deleted file mode 100644 index b1ce960..0000000 --- a/deployment/arb1/out/MockERC721.sol/MockERC721.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"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":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true,"internalType":"address"},{"name":"_operator","type":"address","indexed":true,"internalType":"address"},{"name":"_approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true,"internalType":"address"},{"name":"_to","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601557611643908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610f245750806306fdde0314610e61578063081812fc14610e01578063095ea7b314610d0557806323b872dd14610cf357806342842e0e14610be05780634cd88b76146106f35780636352211e1461062e57806370a082311461056557806395d89b4114610443578063a22cb46514610371578063b88d4fde146101d1578063c87b56dd146101535763e985e9c5146100b957600080fd5b3461014e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576100f0611077565b73ffffffffffffffffffffffffffffffffffffffff61010d61109a565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b600080fd5b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760405160208152602081817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60605180848601526101c781604087016080611011565b0116820101030190f35b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57610203611077565b61020b61109a565b9060443560643567ffffffffffffffff811161014e573660238201121561014e57610240903690602481600401359101611170565b9261024c8282856112ab565b803b15928315610262575b610260846115a8565b005b60209350600073ffffffffffffffffffffffffffffffffffffffff80926102d1604051988997889687947f150b7a020000000000000000000000000000000000000000000000000000000086523360048701521660248501526044840152608060648401526084830190611034565b0393165af18015610365577fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009161026093600091610336575b501614828080610257565b610358915060203d60201161035e575b610350818361112f565b810190611570565b8461032b565b503d610346565b6040513d6000823e3d90fd5b3461014e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576103a8611077565b6024359081151580920361014e5773ffffffffffffffffffffffffffffffffffffffff90336000526005602052604060002082821660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff851617905560405192835216907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b3461014e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576040516000600154610483816111f3565b808452906001811690811561052357506001146104c3575b6104bf836104ab8185038261112f565b604051918291602083526020830190611034565b0390f35b91905060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6916000905b808210610509575090915081016020016104ab61049b565b9192600181602092548385880101520191019092916104f1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506104ab905061049b565b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5773ffffffffffffffffffffffffffffffffffffffff6105b1611077565b1680156105d05760005260036020526020604060002054604051908152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4144445245535300000000000000000000000000000000000000006044820152fd5b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57600435600052600260205273ffffffffffffffffffffffffffffffffffffffff60406000205416801561069557602090604051908152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e544544000000000000000000000000000000000000000000006044820152fd5b3461014e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760043567ffffffffffffffff811161014e576107429036906004016111d5565b60243567ffffffffffffffff811161014e576107629036906004016111d5565b60ff60065416610b8257815167ffffffffffffffff81116109e9576107886000546111f3565b601f8111610ae0575b50602092601f8211600114610a235792819293600092610a18575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176000555b805167ffffffffffffffff81116109e9576107fb6001546111f3565b601f8111610946575b50602091601f82116001146108895791819260009261087e575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b01519050828061081e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69160005b85811061092e575083600195106108f7575b505050811b01600155610851565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558280806108e9565b919260206001819286850151815501940192016108d7565b6001600052601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190602083106109c1575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b8181106109b55750610804565b600081556001016109a8565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915061097e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0151905083806107ac565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821693600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639160005b868110610ac85750836001959610610a91575b505050811b016000556107df565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055838080610a83565b91926020600181928685015181550194019201610a70565b60008052601f820160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019060208310610b5a575b601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301905b818110610b4e5750610791565b60008155600101610b41565b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639150610b17565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a4544000000000000000000000000006044820152fd5b610be9366110bd565b91610bf58383836112ab565b813b15918215610c09575b610260836115a8565b6020925073ffffffffffffffffffffffffffffffffffffffff9160008360a49360405197889687957f150b7a02000000000000000000000000000000000000000000000000000000008752336004880152166024860152604485015260806064850152826084850152165af18015610365577fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009161026093600091610cd4575b5016148280610c00565b610ced915060203d60201161035e57610350818361112f565b84610cca565b610260610cff366110bd565b916112ab565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57610d37611077565b6024359081600052600260205273ffffffffffffffffffffffffffffffffffffffff8060406000205416918233148015610dd6575b610d7590611246565b83600052600460205260406000208282167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b508260005260056020526040600020823316600052602052610d7560ff604060002054169050610d6c565b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576004356000526004602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b3461014e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760405160008054610ea0816111f3565b80845290600181169081156105235750600114610ec7576104bf836104ab8185038261112f565b60008080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610f0a575090915081016020016104ab61049b565b919260018160209254838588010152019101909291610ef2565b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361014e57817f01ffc9a70000000000000000000000000000000000000000000000000000000060209314908115610fe7575b8115610fbd575b5015158152f35b7f5b5e139f0000000000000000000000000000000000000000000000000000000091501483610fb6565b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150610faf565b60005b8381106110245750506000910152565b8181015183820152602001611014565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361107081518092818752878088019101611011565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361014e57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361014e57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261014e5760043573ffffffffffffffffffffffffffffffffffffffff8116810361014e579060243573ffffffffffffffffffffffffffffffffffffffff8116810361014e579060443590565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176109e957604052565b92919267ffffffffffffffff82116109e957604051916111b8601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018461112f565b82948184528183011161014e578281602093846000960137010152565b9080601f8301121561014e578160206111f093359101611170565b90565b90600182811c9216801561123c575b602083101461120d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691611202565b1561124d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152fd5b9082600052600260205273ffffffffffffffffffffffffffffffffffffffff806040600020541692169182036115125773ffffffffffffffffffffffffffffffffffffffff169081156114b457803314801561147a575b8015611448575b61131290611246565b806000526003602052604060002080548015611419577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055816000526003602052604060002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114195760010190558260005260026020526040600020827fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905582600052600460205260406000207fffffffffffffffffffffffff000000000000000000000000000000000000000081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5082600052600460205261131273ffffffffffffffffffffffffffffffffffffffff6040600020541633149050611309565b50806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff60406000205416611302565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e540000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d000000000000000000000000000000000000000000006044820152fd5b9081602091031261014e57517fffffffff000000000000000000000000000000000000000000000000000000008116810361014e5790565b156115af57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152fdfea264697066735822122084f0435d750bf6cefbcb3d7084121ebcd1fb2097ab7f8fa96762c94753723bb164736f6c634300081a0033","sourceMap":"381:7498:17:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714610f245750806306fdde0314610e61578063081812fc14610e01578063095ea7b314610d0557806323b872dd14610cf357806342842e0e14610be05780634cd88b76146106f35780636352211e1461062e57806370a082311461056557806395d89b4114610443578063a22cb46514610371578063b88d4fde146101d1578063c87b56dd146101535763e985e9c5146100b957600080fd5b3461014e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576100f0611077565b73ffffffffffffffffffffffffffffffffffffffff61010d61109a565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b600080fd5b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760405160208152602081817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60605180848601526101c781604087016080611011565b0116820101030190f35b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57610203611077565b61020b61109a565b9060443560643567ffffffffffffffff811161014e573660238201121561014e57610240903690602481600401359101611170565b9261024c8282856112ab565b803b15928315610262575b610260846115a8565b005b60209350600073ffffffffffffffffffffffffffffffffffffffff80926102d1604051988997889687947f150b7a020000000000000000000000000000000000000000000000000000000086523360048701521660248501526044840152608060648401526084830190611034565b0393165af18015610365577fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009161026093600091610336575b501614828080610257565b610358915060203d60201161035e575b610350818361112f565b810190611570565b8461032b565b503d610346565b6040513d6000823e3d90fd5b3461014e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576103a8611077565b6024359081151580920361014e5773ffffffffffffffffffffffffffffffffffffffff90336000526005602052604060002082821660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff851617905560405192835216907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b3461014e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576040516000600154610483816111f3565b808452906001811690811561052357506001146104c3575b6104bf836104ab8185038261112f565b604051918291602083526020830190611034565b0390f35b91905060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6916000905b808210610509575090915081016020016104ab61049b565b9192600181602092548385880101520191019092916104f1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506104ab905061049b565b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5773ffffffffffffffffffffffffffffffffffffffff6105b1611077565b1680156105d05760005260036020526020604060002054604051908152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4144445245535300000000000000000000000000000000000000006044820152fd5b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57600435600052600260205273ffffffffffffffffffffffffffffffffffffffff60406000205416801561069557602090604051908152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e544544000000000000000000000000000000000000000000006044820152fd5b3461014e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760043567ffffffffffffffff811161014e576107429036906004016111d5565b60243567ffffffffffffffff811161014e576107629036906004016111d5565b60ff60065416610b8257815167ffffffffffffffff81116109e9576107886000546111f3565b601f8111610ae0575b50602092601f8211600114610a235792819293600092610a18575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176000555b805167ffffffffffffffff81116109e9576107fb6001546111f3565b601f8111610946575b50602091601f82116001146108895791819260009261087e575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b01519050828061081e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69160005b85811061092e575083600195106108f7575b505050811b01600155610851565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558280806108e9565b919260206001819286850151815501940192016108d7565b6001600052601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190602083106109c1575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b8181106109b55750610804565b600081556001016109a8565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915061097e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0151905083806107ac565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821693600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639160005b868110610ac85750836001959610610a91575b505050811b016000556107df565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055838080610a83565b91926020600181928685015181550194019201610a70565b60008052601f820160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019060208310610b5a575b601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301905b818110610b4e5750610791565b60008155600101610b41565b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639150610b17565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a4544000000000000000000000000006044820152fd5b610be9366110bd565b91610bf58383836112ab565b813b15918215610c09575b610260836115a8565b6020925073ffffffffffffffffffffffffffffffffffffffff9160008360a49360405197889687957f150b7a02000000000000000000000000000000000000000000000000000000008752336004880152166024860152604485015260806064850152826084850152165af18015610365577fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009161026093600091610cd4575b5016148280610c00565b610ced915060203d60201161035e57610350818361112f565b84610cca565b610260610cff366110bd565b916112ab565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57610d37611077565b6024359081600052600260205273ffffffffffffffffffffffffffffffffffffffff8060406000205416918233148015610dd6575b610d7590611246565b83600052600460205260406000208282167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b508260005260056020526040600020823316600052602052610d7560ff604060002054169050610d6c565b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e576004356000526004602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b3461014e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760405160008054610ea0816111f3565b80845290600181169081156105235750600114610ec7576104bf836104ab8185038261112f565b60008080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610f0a575090915081016020016104ab61049b565b919260018160209254838588010152019101909291610ef2565b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361014e57817f01ffc9a70000000000000000000000000000000000000000000000000000000060209314908115610fe7575b8115610fbd575b5015158152f35b7f5b5e139f0000000000000000000000000000000000000000000000000000000091501483610fb6565b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150610faf565b60005b8381106110245750506000910152565b8181015183820152602001611014565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361107081518092818752878088019101611011565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361014e57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361014e57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261014e5760043573ffffffffffffffffffffffffffffffffffffffff8116810361014e579060243573ffffffffffffffffffffffffffffffffffffffff8116810361014e579060443590565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176109e957604052565b92919267ffffffffffffffff82116109e957604051916111b8601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018461112f565b82948184528183011161014e578281602093846000960137010152565b9080601f8301121561014e578160206111f093359101611170565b90565b90600182811c9216801561123c575b602083101461120d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691611202565b1561124d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152fd5b9082600052600260205273ffffffffffffffffffffffffffffffffffffffff806040600020541692169182036115125773ffffffffffffffffffffffffffffffffffffffff169081156114b457803314801561147a575b8015611448575b61131290611246565b806000526003602052604060002080548015611419577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055816000526003602052604060002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114195760010190558260005260026020526040600020827fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905582600052600460205260406000207fffffffffffffffffffffffff000000000000000000000000000000000000000081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5082600052600460205261131273ffffffffffffffffffffffffffffffffffffffff6040600020541633149050611309565b50806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff60406000205416611302565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e540000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f57524f4e475f46524f4d000000000000000000000000000000000000000000006044820152fd5b9081602091031261014e57517fffffffff000000000000000000000000000000000000000000000000000000008116810361014e5790565b156115af57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152fdfea264697066735822122084f0435d750bf6cefbcb3d7084121ebcd1fb2097ab7f8fa96762c94753723bb164736f6c634300081a0033","sourceMap":"381:7498:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;2173:17;381:7498;;;;;;2173:34;381:7498;-1:-1:-1;381:7498:17;;;;;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4907:2;;;;;;:::i;:::-;7774:65;;7856:14;;;;4942:175;;381:7498;4921:238;;;:::i;:::-;381:7498;4942:175;381:7498;;;;;;;;;;4978:69;;;;;;;381:7498;4978:69;;5020:10;381:7498;4978:69;;381:7498;;;;;;;;;;;;;;;;;;;;:::i;:::-;4978:69;381:7498;;4978:69;;;;;;381:7498;;4978:69;4921:238;4978:69;381:7498;4978:69;;;4942:175;381:7498;;4978:139;4942:175;;;;;4978:69;;;;381:7498;4978:69;381:7498;4978:69;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;381:7498;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3525:10;;381:7498;;3507:17;381:7498;;;;;;;;-1:-1:-1;381:7498:17;;;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;;;;;3525:10;3573:46;381:7498;3525:10;3573:46;;381:7498;;;;;;;;;;;;;;;851:7;381:7498;;;;:::i;:::-;;;;;851:7;381:7498;;;851:7;;;;381:7498;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;851:7;381:7498;;;;;;;;;;;;-1:-1:-1;381:7498:17;;-1:-1:-1;381:7498:17;;;;;;;;;;851:7;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:17;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;;;;:::i;:::-;;1521:19;;381:7498;;;;1575:10;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1367:8;381:7498;;;;;;;;1358:36;;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;2796:11;381:7498;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:17;381:7498;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:17;381:7498;;;;;;;;2865:17;381:7498;;2796:11;381:7498;;;;2865:17;381:7498;;;;;;;;-1:-1:-1;381:7498:17;;;;;;;;;2865:17;381:7498;;;;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;;;;;;2865:17;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2865:17;381:7498;;;;;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4460:2;;;;;;:::i;:::-;7774:65;;7856:14;;;;4495:173;;381:7498;4474:236;;;:::i;4495:173::-;381:7498;;;;;;;4531:67;381:7498;;;4531:67;;;;;381:7498;4531:67;;4573:10;381:7498;4531:67;;381:7498;;;;;;;;;;;;;;;;;;;;;4531:67;;;;;;381:7498;;4531:67;4474:236;4531:67;381:7498;4531:67;;;4495:173;381:7498;;4531:137;4495:173;;;;4531:67;;;;381:7498;4531:67;381:7498;4531:67;;;;;;;:::i;:::-;;;;381:7498;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;3210:8;381:7498;;;;;;;;;3241:10;;;:19;:59;;;;381:7498;3233:86;;;:::i;:::-;381:7498;;;;;;;;;;;;;;;;;;;;3372:28;;381:7498;3372:28;;381:7498;3241:59;381:7498;;;;3264:17;381:7498;;;;;3241:10;;381:7498;-1:-1:-1;381:7498:17;;;3233:86;381:7498;;-1:-1:-1;381:7498:17;;;3241:59;;;;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;381:7498:17;;;;;;;-1:-1:-1;381:7498:17;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5462:25;381:7498;;5462:25;;:100;;;;;381:7498;5462:175;;;;381:7498;;;;;;;5462:175;381:7498;5612:25;;;5462:175;;;:100;381:7498;5537:25;;;-1:-1:-1;5462:100:17;;381:7498;;;;;;;;-1:-1:-1;;381:7498:17;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;381:7498:17;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;3632:693;;381:7498;-1:-1:-1;381:7498:17;3750:8;381:7498;;;;;-1:-1:-1;381:7498:17;;;;;3742:20;;;381:7498;;;;3796:16;;;381:7498;;3866:10;;:18;:57;;;;3632:693;3866:91;;;;3632:693;3845:152;;;:::i;:::-;381:7498;-1:-1:-1;381:7498:17;4173:10;381:7498;;;-1:-1:-1;381:7498:17;;;;;;;;;;;;-1:-1:-1;381:7498:17;4173:10;381:7498;;;-1:-1:-1;381:7498:17;;;;;;;;;;;;;-1:-1:-1;381:7498:17;3750:8;381:7498;;;-1:-1:-1;381:7498:17;;;;;;;;;;-1:-1:-1;381:7498:17;4264:12;381:7498;;;-1:-1:-1;381:7498:17;;;;;;;4296:22;-1:-1:-1;4296:22:17;;3632:693::o;381:7498::-;;-1:-1:-1;381:7498:17;;;;;-1:-1:-1;381:7498:17;3866:91;381:7498;;-1:-1:-1;381:7498:17;3941:12;381:7498;;3845:152;381:7498;;-1:-1:-1;381:7498:17;;;3866:10;3927:30;3866:91;;;;:57;381:7498;;-1:-1:-1;381:7498:17;3888:17;381:7498;;;-1:-1:-1;381:7498:17;;3866:10;381:7498;-1:-1:-1;381:7498:17;;;;;-1:-1:-1;381:7498:17;;;3866:57;;381:7498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","initialize(string,string)":"4cd88b76","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"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\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"This emits when the approved address for an NFT is changed or reaffirmed. The zero address indicates there is no approved address. When a Transfer event emits, this also indicates that the approved address for that NFT (if any) is reset to none.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"This emits when an operator is enabled or disabled for an owner. The operator can manage all NFTs of the owner.\"},\"Transfer(address,address,uint256)\":{\"details\":\"This emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any number of NFTs may be created and assigned without emitting Transfer. At the time of any transfer, the approved address for that NFT (if any) is reset to none.\"}},\"kind\":\"dev\",\"methods\":{\"initialize(string,string)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"A descriptive name for a collection of NFTs in this contract\"},\"symbol()\":{\"notice\":\"An abbreviated name for NFTs in this contract\"}},\"notice\":\"This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/mocks/MockERC721.sol\":\"MockERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_approved","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address","indexed":true},{"internalType":"address","name":"_operator","type":"address","indexed":true},{"internalType":"bool","name":"_approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"_from","type":"address","indexed":true},{"internalType":"address","name":"_to","type":"address","indexed":true},{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"initialize(string,string)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"A descriptive name for a collection of NFTs in this contract"},"symbol()":{"notice":"An abbreviated name for NFTs in this contract"}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file diff --git a/deployment/arb1/out/MockEnv.sol/MockEnv.json b/deployment/arb1/out/MockEnv.sol/MockEnv.json deleted file mode 100644 index 5153f1d..0000000 --- a/deployment/arb1/out/MockEnv.sol/MockEnv.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"COIN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MockERC20"}],"stateMutability":"view"},{"type":"function","name":"USD","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MockERC20"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultFactory"}],"stateMutability":"view"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"init","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"feeManager","type":"address","internalType":"contract FeeManager"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initDebugFees","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initNoFees","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"inverted","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"oneSqrtX96","inputs":[],"outputs":[{"name":"","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"pool","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV3Pool"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[],"outputs":[{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"stake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"lower","type":"int24","internalType":"int24"},{"name":"upper","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"coinAmount","type":"uint256","internalType":"uint256"},{"name":"usdAmount","type":"uint256","internalType":"uint256"},{"name":"lower","type":"int24","internalType":"int24"},{"name":"upper","type":"int24","internalType":"int24"}],"outputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint128","internalType":"uint128"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"width","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"inToken","type":"address","internalType":"contract MockERC20"},{"name":"outToken","type":"address","internalType":"contract MockERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"inToken","type":"address","internalType":"contract MockERC20"},{"name":"outToken","type":"address","internalType":"contract MockERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTo1","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapToPrice","inputs":[{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x60808060405234603b57600180546001600160a01b03191673c36442b4a4522e871399cd717abdd847ab11fe8817905561e60c90816100418239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630dfe1681146111745750806316f0115b146111225780631bf6c21b146110d05780633420899b1461109657806341cca3b5146102925780634a09d3dd1461100b57806353486e2f14610fc857806367e368fc14610f845780638f7d7c5014610f2d578063a035b1fe14610e61578063a54a72b714610e0f578063c45a015514610dbe578063c4b5da7414610bf6578063c578d91d14610b9d578063d21220a714610b4b578063d6f1300214610454578063ddca3f4314610410578063df791e50146102c9578063e1c7392a14610292578063e3baf41a1461018e5763f09a40161461010857600080fd5b3461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043573ffffffffffffffffffffffffffffffffffffffff811681036101875760243573ffffffffffffffffffffffffffffffffffffffff811681036101835761018091611cb0565b80f35b8280fd5b5080fd5b80fd5b503461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576101c661120f565b818160020b13156101875760049060e073ffffffffffffffffffffffffffffffffffffffff60025416604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156102875761018092849261024b575b508061023c6102429284611bdd565b92611c46565b9060043561139d565b6102429192506102729060e03d60e011610280575b61026a8183611ac8565b810190611b33565b50505050509050919061022d565b503d610260565b6040513d85823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061122f565b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576103016111c4565b6103096111ec565b73ffffffffffffffffffffffffffffffffffffffff60025416906040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610405576103b3949392918673ffffffffffffffffffffffffffffffffffffffff92602098926103d6575b50501673ffffffffffffffffffffffffffffffffffffffff8416146000146103bb576401000276a4925b604435926126f0565b604051908152f35b73fffd8963efd1fc6a506488495d951d5263988d25926103aa565b6103f7919250883d8a116103fe575b6103ef8183611ac8565b810190611bb1565b9038610380565b503d6103e5565b6040513d87823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602062ffffff60025460a01c16604051908152f35b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043560243561049261121f565b606435918260020b8303610b475782919260ff60065460a01c169485600014610b4057825b8615610b385750945b610b1a575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa8015610b0f5773ffffffffffffffffffffffffffffffffffffffff918891610af0575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991610ac6575b501694863b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018590528881604481838c5af180156109d357610ab2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357610a7b575b50853b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905288908181604481838c5af1801561099757610a62575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d357610a2b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481895afa9182156109d35789926109e6575b50906107328161073893612f7a565b93612f7a565b92339333156109de575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d35789956109a2575b506040519761079089611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f18015610997578291838091819361091a575b50506fffffffffffffffffffffffffffffffff60809460405194855216602084015260408301526060820152f35b9350935050506080813d60801161098f575b8161093960809383611ac8565b81010312610187578051906020810151916fffffffffffffffffffffffffffffffff8316830361098b57604082015160609092015192935091906fffffffffffffffffffffffffffffffff60806108ec565b8380fd5b3d915061092c565b6040513d84823e3d90fd5b6109c591955060203d6020116109cc575b6109bd8183611ac8565b8101906126d5565b9338610782565b503d6109b3565b6040513d8b823e3d90fd5b309450610742565b91506020823d602011610a23575b81610a0160209383611ac8565b81010312610a1f57610732610a1861073893611b09565b9250610723565b8880fd5b3d91506109f4565b6020813d602011610a5a575b81610a4460209383611ac8565b81010312610a1f57610a5590611b26565b6106e4565b3d9150610a37565b81610a6c91611ac8565b610a77578738610686565b8780fd5b6020813d602011610aaa575b81610a9460209383611ac8565b81010312610a1f57610aa590611b26565b610635565b3d9150610a87565b88610abf91999299611ac8565b96386105d8565b610adf915060203d6020116103fe576103ef8183611ac8565b38610587565b6040513d8a823e3d90fd5b610b09915060203d6020116103fe576103ef8183611ac8565b38610532565b6040513d89823e3d90fd5b909250610b279150611c80565b90610b3182611c80565b90386104c5565b9050946104c0565b80926104b7565b8480fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b503461018b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd86111c4565b73ffffffffffffffffffffffffffffffffffffffff60025416612bee565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57604051611e7a8082019082821067ffffffffffffffff831117610d91579082916147898339039082f08015610d8457604051610c6081611a72565b60e381526028602082015260b5604082015260246060820152601e6080820152604051610c8c81611a72565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610cb983611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019083821067ffffffffffffffff831117610d575791610d2e9184936130368539612e59565b039083f080156109975773ffffffffffffffffffffffffffffffffffffffff6101809216611cb0565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57600460e073ffffffffffffffffffffffffffffffffffffffff60025416604051928380927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156109975760209291610f08575b5073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b610f21915060e03d60e0116102805761026a8183611ac8565b50505050505038610ee9565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576020610f66611a43565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602060ff60065460a01c166040519015158152f35b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061100361120f565b61024261121f565b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576110436111c4565b61104b6111ec565b6064359273ffffffffffffffffffffffffffffffffffffffff8416840361018b5760206103b38585856044359173ffffffffffffffffffffffffffffffffffffffff600254166126f0565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd8611a43565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b90503461018757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101875760209073ffffffffffffffffffffffffffffffffffffffff600554168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b602435908160020b82036111e757565b604435908160020b82036111e757565b604051611e7a80820182811067ffffffffffffffff82111761136e578291614789833903906000f080156113625760405161126981611a72565b600081526000602082015260006040820152600060608201526000608082015260405161129581611a72565b6000815260006020820152600060408201526000606082015260006080820152604051916112c283611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff84111761136e578392611336926130368539612e59565b03906000f080156113625773ffffffffffffffffffffffffffffffffffffffff6113609216611cb0565b565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9091600092670de0b6b3a7640000830292801593818104670de0b6b3a764000014851715611a165760011c93620f42408202918204620f42401417156119e95760011c82919260ff60065460a01c1694856000146119e257825b86156119da5750945b6119bc575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e575b501694863b15610a77576040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101859052888180604481015b0381838c5af180156109d35761196a575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357611933575b50853b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838b5af180156109d35790899161191e575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d3576118e7575b506040517fd0c93a7c000000000000000000000000000000000000000000000000000000008152602081600481895afa9081156109d35789916118a4575b506107328161167a93612f7a565b923393331561189c575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d357899561187b575b50604051976116d289611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f180156109975761182a575050565b6080813d608011611873575b8161184360809383611ac8565b81010312610187578051916020820151906fffffffffffffffffffffffffffffffff8216820361018b5750505050565b3d9150611836565b61189591955060203d6020116109cc576109bd8183611ac8565b93386116c4565b309450611684565b90506020813d6020116118df575b816118bf60209383611ac8565b81010312610a1f57906107326118d761167a93611b09565b91925061166c565b3d91506118b2565b6020813d602011611916575b8161190060209383611ac8565b81010312610a1f5761191190611b26565b61162e565b3d91506118f3565b8161192891611ac8565b610a775787386115d0565b6020813d602011611962575b8161194c60209383611ac8565b81010312610a1f5761195d90611b26565b61157e565b3d915061193f565b8861197791999299611ac8565b9638611521565b611997915060203d6020116103fe576103ef8183611ac8565b386114cb565b6119b6915060203d6020116103fe576103ef8183611ac8565b38611474565b9092506119c99150611c80565b906119d382611c80565b9038611405565b905094611400565b80926113f7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60065460a01c60ff1615611a64576e0f424000000000000000000000000090565b6910c6f7a0b5ed8d36b4c790565b60a0810190811067ffffffffffffffff82111761136e57604052565b610160810190811067ffffffffffffffff82111761136e57604052565b610100810190811067ffffffffffffffff82111761136e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761136e57604052565b51908160020b82036111e757565b519061ffff821682036111e757565b519081151582036111e757565b908160e09103126111e757805173ffffffffffffffffffffffffffffffffffffffff811681036111e75791611b6a60208301611b09565b91611b7760408201611b17565b91611b8460608301611b17565b91611b9160808201611b17565b9160a082015160ff811681036111e75760c0611bae919301611b26565b90565b908160209103126111e7575173ffffffffffffffffffffffffffffffffffffffff811681036111e75790565b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831217611c1757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff831317611c1757565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114611c175760000390565b9060009160405191615491918284019284841067ffffffffffffffff851117610d5757849273ffffffffffffffffffffffffffffffffffffffff60609593819361823e873916835216602082015284604082015203019082f08015610d845760405190611c3b908183019183831067ffffffffffffffff841117612567579173ffffffffffffffffffffffffffffffffffffffff849260609461660385393383521660208201526078604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781558080611e23611e55604051611dbc604082611ac8565b601481527f4d6f636b456e763a206d73672e73656e6465723a00000000000000000000000060208201526040519283917f319af333000000000000000000000000000000000000000000000000000000006020840152604060248401526064830190612594565b336044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50604051610f08908181019080821067ffffffffffffffff831117610d915760e08161d6cf938585833960608152601660608201527f4d6f636b20457468657265756d2048617264666f726b00000000000000000000608082015260a06020820152600360a08201527f4d4548000000000000000000000000000000000000000000000000000000000060c08201526012604082015203019084f080156102875773ffffffffffffffffffffffffffffffffffffffff611f939116807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355611f8e604051611f5f604082611ac8565b600381527f4d4548000000000000000000000000000000000000000000000000000000000060208201526125f3565b61267d565b604051918083019183831067ffffffffffffffff8411176125675791839160e093833960608152601060608201527f4a6f6b652043757272656e637920584400000000000000000000000000000000608082015260a06020820152600460a08201527f555358440000000000000000000000000000000000000000000000000000000060c08201526006604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060045416176004556120ad60405161207e604082611ac8565b600481527f555358440000000000000000000000000000000000000000000000000000000060208201526125f3565b6120b68161267d565b60207fffffffffffffffffffffff00000000000000000000000000000000000000000060847501f400000000000000000000000000000000000000007fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff6002541617938460025573ffffffffffffffffffffffffffffffffffffffff600354166006549073ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000084831160a01b169160ff837fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff86161760a01c1694856000146125605782815b1695867fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055560001461255957505b1694859216171760065561226e6040516121f4608082611ac8565b605381527f6966207468697320697320746865206c617374206c696e65206265666f726520868201527f6120726576657274207468656e206d616b65207375726520746f2072756e206660408201527f6f7267652077697468202d2d7270632d75726c0000000000000000000000000060608201526125f3565b8573ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff6122a5611a43565b62ffffff604051998a9889977f13ead5620000000000000000000000000000000000000000000000000000000089526004890152602488015260a01c1660448601521660648401525af1908115610997579073ffffffffffffffffffffffffffffffffffffffff91839161253a575b5016807fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255612380604051612351604082611ac8565b600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526125f3565b6123898161267d565b60065460a01c60ff16907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761890620d89e8808415612529576903c1fb96f3938f910000915b8515612518576903c1fb96f3938f910000955b6124d8575b506040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e57501694863b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810185905288818060448101611510565b9193505060020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146119e95784039161251283611c80565b386123e5565b6903c1fb96f3938f910000956123e0565b6903c1fb96f3938f910000916123cd565b612553915060203d6020116103fe576103ef8183611ac8565b38612314565b90506121d9565b82826121a4565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b919082519283825260005b8481106125de5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b8060208092840101518282860101520161259f565b600061263a61266682936040519283917f41304fac000000000000000000000000000000000000000000000000000000006020840152602060248401526044830190612594565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc200000000000000000000000000000000000000000000000000000000602084015216602482015260248152612666604482611ac8565b908160209103126111e7575162ffffff811681036111e75790565b9391929073ffffffffffffffffffffffffffffffffffffffff16906040517f095ea7b300000000000000000000000000000000000000000000000000000000815273e592427a0aece92de3edee1f18e0157c0586156460048201528160248201526020816044816000875af1801561136257612906575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa9384156113625773ffffffffffffffffffffffffffffffffffffffff80957f414bf38900000000000000000000000000000000000000000000000000000000976000916128e7575b506040519461280586611aab565b855281602086019316835262ffffff604086019116815262ffffff606086019133835283608088019542875260a089019788528160c08a019960008b528160e082019c168c526040519d8e52511660048d0152511660248b015251166044890152511660648701525160848601525160a48501525160c4840152511660e482015260208161010481600073e592427a0aece92de3edee1f18e0157c058615645af1908115611362576000916128b8575090565b90506020813d6020116128df575b816128d360209383611ac8565b810103126111e7575190565b3d91506128c6565b612900915060203d6020116109cc576109bd8183611ac8565b386127f7565b6020813d602011612950575b8161291f60209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612948602092611b26565b509550612767565b3d9150612912565b9173ffffffffffffffffffffffffffffffffffffffff8091959295169216906040517f095ea7b30000000000000000000000000000000000000000000000000000000081528260048201526c1000000000000000000000000060248201526020816044816000885af1801561136257612b9c575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa94851561136257600095612b7b575b5060405192612a3184611aab565b8352602083019373ffffffffffffffffffffffffffffffffffffffff168452604083019462ffffff168552606083013381526080840142815260a08501906c10000000000000000000000000825260c08601926000845260e087019473ffffffffffffffffffffffffffffffffffffffff16855260405198899889987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e48301525a92600061010492602095f1908115611362576000916128b8575090565b612b9591955060203d6020116109cc576109bd8183611ac8565b9338612a23565b6020813d602011612be6575b81612bb560209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612bde602092611b26565b5095506129cc565b3d9150612ba8565b919060009273ffffffffffffffffffffffffffffffffffffffff8116604051907f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa918215612e4e578692612e27575b5073ffffffffffffffffffffffffffffffffffffffff808516921691808314612e1e576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff6020916004938b91612e01575b501693604051928380927fd21220a70000000000000000000000000000000000000000000000000000000082525afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991612de2575b50169080841115612ddb5782935b1015612dd35750915b8573ffffffffffffffffffffffffffffffffffffffff8316803b156101875781906044604051809a81937f40c10f190000000000000000000000000000000000000000000000000000000083523060048401526c1000000000000000000000000060248401525af1968715610d8457612dc09697612dc3575b505073e592427a0aece92de3edee1f18e0157c05861564612958565b50565b81612dcd91611ac8565b38612da4565b905091612d2b565b8193612d22565b612dfb915060203d6020116103fe576103ef8183611ac8565b38612d14565b612e189150833d85116103fe576103ef8183611ac8565b38612cc2565b50505050509050565b612e4191925060e03d60e0116102805761026a8183611ac8565b5050505050509038612c48565b6040513d88823e3d90fd5b91909161024073ffffffffffffffffffffffffffffffffffffffff61014061026084019563ffffffff815116855263ffffffff602082015116602086015260ff604082015116604086015260ff6060820151166060860152612ef66080820151608087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b612f3c60a082015161012087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b8260c0820151166101c08601528260e0820151166101e086015282610100820151166102008601528261012082015116610220860152015116910152565b8060020b918060020b80156130065760008185079412600014612fcf576002612fa285611c80565b9105600290810b91900b13612fbc575090611bae91611bdd565b611bae92612fc991611c46565b90611bdd565b6002906000949394500560020b8260020b13600014612ffc57611bae9291612ff691611bdd565b90611c46565b50611bae91611bdd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a264697066735822122004adf304dfdb82ba37f8110667f9c6834327cefdd89f88c43499f7c5b66ebe0164736f6c634300081a0033","sourceMap":"567:4559:80:-:0;;;;;;;;;;-1:-1:-1;;;;;;567:4559:80;705:42;567:4559;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630dfe1681146111745750806316f0115b146111225780631bf6c21b146110d05780633420899b1461109657806341cca3b5146102925780634a09d3dd1461100b57806353486e2f14610fc857806367e368fc14610f845780638f7d7c5014610f2d578063a035b1fe14610e61578063a54a72b714610e0f578063c45a015514610dbe578063c4b5da7414610bf6578063c578d91d14610b9d578063d21220a714610b4b578063d6f1300214610454578063ddca3f4314610410578063df791e50146102c9578063e1c7392a14610292578063e3baf41a1461018e5763f09a40161461010857600080fd5b3461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043573ffffffffffffffffffffffffffffffffffffffff811681036101875760243573ffffffffffffffffffffffffffffffffffffffff811681036101835761018091611cb0565b80f35b8280fd5b5080fd5b80fd5b503461018b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576101c661120f565b818160020b13156101875760049060e073ffffffffffffffffffffffffffffffffffffffff60025416604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156102875761018092849261024b575b508061023c6102429284611bdd565b92611c46565b9060043561139d565b6102429192506102729060e03d60e011610280575b61026a8183611ac8565b810190611b33565b50505050509050919061022d565b503d610260565b6040513d85823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061122f565b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576103016111c4565b6103096111ec565b73ffffffffffffffffffffffffffffffffffffffff60025416906040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610405576103b3949392918673ffffffffffffffffffffffffffffffffffffffff92602098926103d6575b50501673ffffffffffffffffffffffffffffffffffffffff8416146000146103bb576401000276a4925b604435926126f0565b604051908152f35b73fffd8963efd1fc6a506488495d951d5263988d25926103aa565b6103f7919250883d8a116103fe575b6103ef8183611ac8565b810190611bb1565b9038610380565b503d6103e5565b6040513d87823e3d90fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602062ffffff60025460a01c16604051908152f35b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5760043560243561049261121f565b606435918260020b8303610b475782919260ff60065460a01c169485600014610b4057825b8615610b385750945b610b1a575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa8015610b0f5773ffffffffffffffffffffffffffffffffffffffff918891610af0575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991610ac6575b501694863b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018590528881604481838c5af180156109d357610ab2575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357610a7b575b50853b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905288908181604481838c5af1801561099757610a62575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d357610a2b575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481895afa9182156109d35789926109e6575b50906107328161073893612f7a565b93612f7a565b92339333156109de575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d35789956109a2575b506040519761079089611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f18015610997578291838091819361091a575b50506fffffffffffffffffffffffffffffffff60809460405194855216602084015260408301526060820152f35b9350935050506080813d60801161098f575b8161093960809383611ac8565b81010312610187578051906020810151916fffffffffffffffffffffffffffffffff8316830361098b57604082015160609092015192935091906fffffffffffffffffffffffffffffffff60806108ec565b8380fd5b3d915061092c565b6040513d84823e3d90fd5b6109c591955060203d6020116109cc575b6109bd8183611ac8565b8101906126d5565b9338610782565b503d6109b3565b6040513d8b823e3d90fd5b309450610742565b91506020823d602011610a23575b81610a0160209383611ac8565b81010312610a1f57610732610a1861073893611b09565b9250610723565b8880fd5b3d91506109f4565b6020813d602011610a5a575b81610a4460209383611ac8565b81010312610a1f57610a5590611b26565b6106e4565b3d9150610a37565b81610a6c91611ac8565b610a77578738610686565b8780fd5b6020813d602011610aaa575b81610a9460209383611ac8565b81010312610a1f57610aa590611b26565b610635565b3d9150610a87565b88610abf91999299611ac8565b96386105d8565b610adf915060203d6020116103fe576103ef8183611ac8565b38610587565b6040513d8a823e3d90fd5b610b09915060203d6020116103fe576103ef8183611ac8565b38610532565b6040513d89823e3d90fd5b909250610b279150611c80565b90610b3182611c80565b90386104c5565b9050946104c0565b80926104b7565b8480fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b503461018b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd86111c4565b73ffffffffffffffffffffffffffffffffffffffff60025416612bee565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57604051611e7a8082019082821067ffffffffffffffff831117610d91579082916147898339039082f08015610d8457604051610c6081611a72565b60e381526028602082015260b5604082015260246060820152601e6080820152604051610c8c81611a72565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610cb983611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019083821067ffffffffffffffff831117610d575791610d2e9184936130368539612e59565b039083f080156109975773ffffffffffffffffffffffffffffffffffffffff6101809216611cb0565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57600460e073ffffffffffffffffffffffffffffffffffffffff60025416604051928380927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa9081156109975760209291610f08575b5073ffffffffffffffffffffffffffffffffffffffff60405191168152f35b610f21915060e03d60e0116102805761026a8183611ac8565b50505050505038610ee9565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576020610f66611a43565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602060ff60065460a01c166040519015158152f35b503461018b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b5761018061100361120f565b61024261121f565b503461018b5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b576110436111c4565b61104b6111ec565b6064359273ffffffffffffffffffffffffffffffffffffffff8416840361018b5760206103b38585856044359173ffffffffffffffffffffffffffffffffffffffff600254166126f0565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57610180610bd8611a43565b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b503461018b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261018b57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b90503461018757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101875760209073ffffffffffffffffffffffffffffffffffffffff600554168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036111e757565b602435908160020b82036111e757565b604435908160020b82036111e757565b604051611e7a80820182811067ffffffffffffffff82111761136e578291614789833903906000f080156113625760405161126981611a72565b600081526000602082015260006040820152600060608201526000608082015260405161129581611a72565b6000815260006020820152600060408201526000606082015260006080820152604051916112c283611a8e565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff84111761136e578392611336926130368539612e59565b03906000f080156113625773ffffffffffffffffffffffffffffffffffffffff6113609216611cb0565b565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9091600092670de0b6b3a7640000830292801593818104670de0b6b3a764000014851715611a165760011c93620f42408202918204620f42401417156119e95760011c82919260ff60065460a01c1694856000146119e257825b86156119da5750945b6119bc575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e575b501694863b15610a77576040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101859052888180604481015b0381838c5af180156109d35761196a575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156109d357611933575b50853b15610a77576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838b5af180156109d35790899161191e575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156109d3576118e7575b506040517fd0c93a7c000000000000000000000000000000000000000000000000000000008152602081600481895afa9081156109d35789916118a4575b506107328161167a93612f7a565b923393331561189c575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156109d357899561187b575b50604051976116d289611a8e565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f180156109975761182a575050565b6080813d608011611873575b8161184360809383611ac8565b81010312610187578051916020820151906fffffffffffffffffffffffffffffffff8216820361018b5750505050565b3d9150611836565b61189591955060203d6020116109cc576109bd8183611ac8565b93386116c4565b309450611684565b90506020813d6020116118df575b816118bf60209383611ac8565b81010312610a1f57906107326118d761167a93611b09565b91925061166c565b3d91506118b2565b6020813d602011611916575b8161190060209383611ac8565b81010312610a1f5761191190611b26565b61162e565b3d91506118f3565b8161192891611ac8565b610a775787386115d0565b6020813d602011611962575b8161194c60209383611ac8565b81010312610a1f5761195d90611b26565b61157e565b3d915061193f565b8861197791999299611ac8565b9638611521565b611997915060203d6020116103fe576103ef8183611ac8565b386114cb565b6119b6915060203d6020116103fe576103ef8183611ac8565b38611474565b9092506119c99150611c80565b906119d382611c80565b9038611405565b905094611400565b80926113f7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60065460a01c60ff1615611a64576e0f424000000000000000000000000090565b6910c6f7a0b5ed8d36b4c790565b60a0810190811067ffffffffffffffff82111761136e57604052565b610160810190811067ffffffffffffffff82111761136e57604052565b610100810190811067ffffffffffffffff82111761136e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761136e57604052565b51908160020b82036111e757565b519061ffff821682036111e757565b519081151582036111e757565b908160e09103126111e757805173ffffffffffffffffffffffffffffffffffffffff811681036111e75791611b6a60208301611b09565b91611b7760408201611b17565b91611b8460608301611b17565b91611b9160808201611b17565b9160a082015160ff811681036111e75760c0611bae919301611b26565b90565b908160209103126111e7575173ffffffffffffffffffffffffffffffffffffffff811681036111e75790565b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831217611c1757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff831317611c1757565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114611c175760000390565b9060009160405191615491918284019284841067ffffffffffffffff851117610d5757849273ffffffffffffffffffffffffffffffffffffffff60609593819361823e873916835216602082015284604082015203019082f08015610d845760405190611c3b908183019183831067ffffffffffffffff841117612567579173ffffffffffffffffffffffffffffffffffffffff849260609461660385393383521660208201526078604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781558080611e23611e55604051611dbc604082611ac8565b601481527f4d6f636b456e763a206d73672e73656e6465723a00000000000000000000000060208201526040519283917f319af333000000000000000000000000000000000000000000000000000000006020840152604060248401526064830190612594565b336044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50604051610f08908181019080821067ffffffffffffffff831117610d915760e08161d6cf938585833960608152601660608201527f4d6f636b20457468657265756d2048617264666f726b00000000000000000000608082015260a06020820152600360a08201527f4d4548000000000000000000000000000000000000000000000000000000000060c08201526012604082015203019084f080156102875773ffffffffffffffffffffffffffffffffffffffff611f939116807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355611f8e604051611f5f604082611ac8565b600381527f4d4548000000000000000000000000000000000000000000000000000000000060208201526125f3565b61267d565b604051918083019183831067ffffffffffffffff8411176125675791839160e093833960608152601060608201527f4a6f6b652043757272656e637920584400000000000000000000000000000000608082015260a06020820152600460a08201527f555358440000000000000000000000000000000000000000000000000000000060c08201526006604082015203019082f08015610d845773ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff000000000000000000000000000000000000000060045416176004556120ad60405161207e604082611ac8565b600481527f555358440000000000000000000000000000000000000000000000000000000060208201526125f3565b6120b68161267d565b60207fffffffffffffffffffffff00000000000000000000000000000000000000000060847501f400000000000000000000000000000000000000007fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff6002541617938460025573ffffffffffffffffffffffffffffffffffffffff600354166006549073ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000084831160a01b169160ff837fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff86161760a01c1694856000146125605782815b1695867fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055560001461255957505b1694859216171760065561226e6040516121f4608082611ac8565b605381527f6966207468697320697320746865206c617374206c696e65206265666f726520868201527f6120726576657274207468656e206d616b65207375726520746f2072756e206660408201527f6f7267652077697468202d2d7270632d75726c0000000000000000000000000060608201526125f3565b8573ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff6122a5611a43565b62ffffff604051998a9889977f13ead5620000000000000000000000000000000000000000000000000000000089526004890152602488015260a01c1660448601521660648401525af1908115610997579073ffffffffffffffffffffffffffffffffffffffff91839161253a575b5016807fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255612380604051612351604082611ac8565b600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526125f3565b6123898161267d565b60065460a01c60ff16907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761890620d89e8808415612529576903c1fb96f3938f910000915b8515612518576903c1fb96f3938f910000955b6124d8575b506040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa908115610b0f579073ffffffffffffffffffffffffffffffffffffffff91889161199d575016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa908115610ae5579073ffffffffffffffffffffffffffffffffffffffff91899161197e57501694863b15610a77576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810185905288818060448101611510565b9193505060020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146119e95784039161251283611c80565b386123e5565b6903c1fb96f3938f910000956123e0565b6903c1fb96f3938f910000916123cd565b612553915060203d6020116103fe576103ef8183611ac8565b38612314565b90506121d9565b82826121a4565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b919082519283825260005b8481106125de5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b8060208092840101518282860101520161259f565b600061263a61266682936040519283917f41304fac000000000000000000000000000000000000000000000000000000006020840152602060248401526044830190612594565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611ac8565b6020815191016a636f6e736f6c652e6c6f675afa50565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc200000000000000000000000000000000000000000000000000000000602084015216602482015260248152612666604482611ac8565b908160209103126111e7575162ffffff811681036111e75790565b9391929073ffffffffffffffffffffffffffffffffffffffff16906040517f095ea7b300000000000000000000000000000000000000000000000000000000815273e592427a0aece92de3edee1f18e0157c0586156460048201528160248201526020816044816000875af1801561136257612906575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa9384156113625773ffffffffffffffffffffffffffffffffffffffff80957f414bf38900000000000000000000000000000000000000000000000000000000976000916128e7575b506040519461280586611aab565b855281602086019316835262ffffff604086019116815262ffffff606086019133835283608088019542875260a089019788528160c08a019960008b528160e082019c168c526040519d8e52511660048d0152511660248b015251166044890152511660648701525160848601525160a48501525160c4840152511660e482015260208161010481600073e592427a0aece92de3edee1f18e0157c058615645af1908115611362576000916128b8575090565b90506020813d6020116128df575b816128d360209383611ac8565b810103126111e7575190565b3d91506128c6565b612900915060203d6020116109cc576109bd8183611ac8565b386127f7565b6020813d602011612950575b8161291f60209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612948602092611b26565b509550612767565b3d9150612912565b9173ffffffffffffffffffffffffffffffffffffffff8091959295169216906040517f095ea7b30000000000000000000000000000000000000000000000000000000081528260048201526c1000000000000000000000000060248201526020816044816000885af1801561136257612b9c575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa94851561136257600095612b7b575b5060405192612a3184611aab565b8352602083019373ffffffffffffffffffffffffffffffffffffffff168452604083019462ffffff168552606083013381526080840142815260a08501906c10000000000000000000000000825260c08601926000845260e087019473ffffffffffffffffffffffffffffffffffffffff16855260405198899889987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e48301525a92600061010492602095f1908115611362576000916128b8575090565b612b9591955060203d6020116109cc576109bd8183611ac8565b9338612a23565b6020813d602011612be6575b81612bb560209383611ac8565b810103126111e75773ffffffffffffffffffffffffffffffffffffffff95612bde602092611b26565b5095506129cc565b3d9150612ba8565b919060009273ffffffffffffffffffffffffffffffffffffffff8116604051907f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa918215612e4e578692612e27575b5073ffffffffffffffffffffffffffffffffffffffff808516921691808314612e1e576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff6020916004938b91612e01575b501693604051928380927fd21220a70000000000000000000000000000000000000000000000000000000082525afa8015610ae55773ffffffffffffffffffffffffffffffffffffffff918991612de2575b50169080841115612ddb5782935b1015612dd35750915b8573ffffffffffffffffffffffffffffffffffffffff8316803b156101875781906044604051809a81937f40c10f190000000000000000000000000000000000000000000000000000000083523060048401526c1000000000000000000000000060248401525af1968715610d8457612dc09697612dc3575b505073e592427a0aece92de3edee1f18e0157c05861564612958565b50565b81612dcd91611ac8565b38612da4565b905091612d2b565b8193612d22565b612dfb915060203d6020116103fe576103ef8183611ac8565b38612d14565b612e189150833d85116103fe576103ef8183611ac8565b38612cc2565b50505050509050565b612e4191925060e03d60e0116102805761026a8183611ac8565b5050505050509038612c48565b6040513d88823e3d90fd5b91909161024073ffffffffffffffffffffffffffffffffffffffff61014061026084019563ffffffff815116855263ffffffff602082015116602086015260ff604082015116604086015260ff6060820151166060860152612ef66080820151608087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b612f3c60a082015161012087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b8260c0820151166101c08601528260e0820151166101e086015282610100820151166102008601528261012082015116610220860152015116910152565b8060020b918060020b80156130065760008185079412600014612fcf576002612fa285611c80565b9105600290810b91900b13612fbc575090611bae91611bdd565b611bae92612fc991611c46565b90611bdd565b6002906000949394500560020b8260020b13600014612ffc57611bae9291612ff691611bdd565b90611c46565b50611bae91611bdd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a003360806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a264697066735822122004adf304dfdb82ba37f8110667f9c6834327cefdd89f88c43499f7c5b66ebe0164736f6c634300081a0033","sourceMap":"567:4559:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3210:7;567:4559;;;;;;;;;;;;3254:12;;;;567:4559;3254:12;;;;;;;;;3302:10;567:4559;;3254:12;;;567:4559;3290:10;;;3302;3290;;;:::i;:::-;3302;;:::i;:::-;567:4559;;;3302:10;:::i;3254:12::-;3302:10;3254:12;;;;;567:4559;3254:12;567:4559;3254:12;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;567:4559;;;;;;;;;;;;;;;;;;;;;1081:52;;:::i;567:4559::-;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;4516:4;567:4559;;;;;;4516:13;;567:4559;4516:13;567:4559;4516:13;;;;;;;;;1586:88:81;4516:13:80;;;;;567:4559;4516:13;567:4559;4516:13;;;;567:4559;4496:93;567:4559;;;;;4496:33;:93;567:4559;;;817:10:41;4496:93:80;;567:4559;;1586:88:81;;:::i;:::-;567:4559:80;;;;;;4496:93;997:49:41;4496:93:80;;;4516:13;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;567:4559;;;;;;;;;;;;;;;;;;;;;;;799:17;567:4559;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;3784:43;;567:4559;;4078:8;567:4559;;;;4078:33;;;;;;;;4134;;;;;;;4177:81;;4134:33;567:4559;;;;;;;;;6030:13:81;;567:4559:80;6030:13:81;567:4559:80;6030:13:81;;;;;;;;567:4559:80;6030:13:81;;;;;4134:33:80;567:4559;;;;;;6083:13:81;;567:4559:80;6083:13:81;567:4559:80;6083:13:81;;;;;;;;567:4559:80;6083:13:81;;;;;4134:33:80;567:4559;;6107:40:81;;;;;;567:4559:80;;;6107:40:81;;6127:4;567:4559:80;6107:40:81;;567:4559:80;;;;;;;6127:4:81;567:4559:80;;;6127:4:81;6107:40;;;;;;;;;4134:33:80;-1:-1:-1;567:4559:80;;;6157:43:81;;567:4559:80;;6157:43:81;;567:4559:80;;;;;;;;;;;6157:43:81;;;;;;;;;;4134:33:80;6251:40:81;;;;;;567:4559:80;;;6251:40:81;;6127:4;567:4559:80;6251:40:81;;567:4559:80;;;;;;;;;;;;;;6251:40:81;;;;;;;;;4134:33:80;-1:-1:-1;;567:4559:80;;;6301:43:81;;567:4559:80;;6301:43:81;;567:4559:80;;;;;;;;;;;6301:43:81;;;;;;;;;;4134:33:80;567:4559;;;6856:18:81;567:4559:80;6856:18:81;;567:4559:80;6856:18:81;567:4559:80;6856:18:81;;;;;;;;;;;;;4134:33:80;6892:25:81;;;;6935;6892;;:::i;:::-;6935;;:::i;:::-;7093:10;;;;7117:23;7113:214;;4134:33:80;567:4559;;;;;;7478:10:81;;;;567:4559:80;7478:10:81;;;;;;;;;;;;;4134:33:80;567:4559;;;;;;;:::i;:::-;;;;7392:194:81;;567:4559:80;;;;7392:194:81;;567:4559:80;;;;;;7392:194:81;;567:4559:80;;;;;;7392:194:81;;567:4559:80;;;;;;7392:194:81;;567:4559:80;;;7392:194:81;;;567:4559:80;;;;7392:194:81;;567:4559:80;;;;7392:194:81;;;567:4559:80;;;;7392:194:81;;;567:4559:80;;;;;7392:194:81;;;7561:15;;567:4559:80;;;;7637:17:81;567:4559:80;7637:17:81;;567:4559:80;;;;7637:17:81;;567:4559:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:17:81;;;;;;;1306:42:65;567:4559:80;7637:17:81;;;;;;;567:4559:80;;;;;7637:17:81;;;4134:33:80;567:4559;;;;;;;;;;;;;;;;;;;;;;;;7637:17:81;;;;;;;567:4559:80;7637:17:81;;567:4559:80;7637:17:81;;;;;;567:4559:80;7637:17:81;;;:::i;:::-;;;567:4559:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:17:81;;-1:-1:-1;7637:17:81;567:4559:80;;;7637:17:81;;567:4559:80;;;;7637:17:81;;;-1:-1:-1;7637:17:81;;;567:4559:80;;;;;;;;;7478:10:81;;;;;567:4559:80;7478:10:81;567:4559:80;7478:10:81;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;567:4559:80;;;;;;;;;7113:214:81;6127:4;;-1:-1:-1;7113:214:81;;6856:18;;;567:4559:80;6856:18:81;;567:4559:80;6856:18:81;;;;;;567:4559:80;6856:18:81;;;:::i;:::-;;;567:4559:80;;;;6892:25:81;567:4559:80;6935:25:81;567:4559:80;;:::i;:::-;6856:18:81;;;;567:4559:80;;;;6856:18:81;;;-1:-1:-1;6856:18:81;;6301:43;567:4559:80;6301:43:81;;567:4559:80;6301:43:81;;;;;;567:4559:80;6301:43:81;;;:::i;:::-;;;567:4559:80;;;;;;;:::i;:::-;6301:43:81;;;;;-1:-1:-1;6301:43:81;;6251:40;;;;;:::i;:::-;567:4559:80;;6251:40:81;;;;567:4559:80;;;;6157:43:81;567:4559:80;6157:43:81;;567:4559:80;6157:43:81;;;;;;567:4559:80;6157:43:81;;;:::i;:::-;;;567:4559:80;;;;;;;:::i;:::-;6157:43:81;;;;;-1:-1:-1;6157:43:81;;6107:40;;;;;;;;:::i;:::-;;;;;6083:13;;;;567:4559:80;6083:13:81;567:4559:80;6083:13:81;;;;;;;:::i;:::-;;;;;567:4559:80;;;;;;;;;6030:13:81;;;;567:4559:80;6030:13:81;567:4559:80;6030:13:81;;;;;;;:::i;:::-;;;;;567:4559:80;;;;;;;;;4177:81;4213:6;;;;;;;:::i;:::-;4241;;;;:::i;:::-;4177:81;;;;4134:33;;;;;;4078;;;;;567:4559;;;;;;;;;;;;;;;;;;959:21;567:4559;;;;;;;;;;;;;;;;;;;;2874:17:81;567:4559:80;;:::i;:::-;;5093:4;567:4559;;2874:17:81;:::i;567:4559:80:-;;;;;;;;;;;;;;1193:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:4559;;;;;:::i;:::-;4671:3:75;567:4559:80;;4701:2:75;4895:121;;;567:4559:80;4762:3:75;567:4559:80;4895:121:75;;567:4559:80;4790:2:75;4895:121;;;567:4559:80;4825:2:75;4895:121;;;567:4559:80;;;;;;:::i;:::-;4671:3:75;567:4559:80;;4701:2:75;4895:121;5066;;567:4559:80;4762:3:75;567:4559:80;5066:121:75;;567:4559:80;4790:2:75;4895:121;5066;;567:4559:80;4825:2:75;4895:121;5066;;567:4559:80;;;;;;;:::i;:::-;4248:11:75;567:4559:80;;4344:11:75;4895:121;5238:241;;567:4559:80;4436:2:75;567:4559:80;5238:241:75;;567:4559:80;4517:3:75;4895:121;5238:241;;567:4559:80;4895:121:75;5238:241;;567:4559:80;;5238:241:75;;567:4559:80;3770:10:75;5238:241;;;567:4559:80;3770:10:75;567:4559:80;5238:241:75;;567:4559:80;3770:10:75;5238:241;;;567:4559:80;3770:10:75;5238:241;;;567:4559:80;3770:10:75;5238:241;;;567:4559:80;;;5496:20:75;;;;;;;;;1193::80;5496::75;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;567:4559:80;1188:59;567:4559;;1188:59;:::i;5496:20:75:-;4790:2;567:4559:80;;;;;;;;1193:20;567:4559;;;;;;;;;;;1193:20;567:4559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;822:21;567:4559;;;;;;;;;;;;;;;;;;;;;;;4982:4;567:4559;;;;4982:12;;;;567:4559;4982:12;;;;;;;;;567:4559;4982:12;;;;567:4559;;;;;;;;;;4982:12;;;;567:4559;4982:12;567:4559;4982:12;;;;;;;:::i;:::-;;;;;;;;;;567:4559;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;986:20;567:4559;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;1586:88:81;567:4559:80;;;;;;;4823:4;567:4559;;1586:88:81;:::i;567:4559:80:-;;;;;;;;;;;;2874:17:81;3114:12:80;;:::i;567:4559::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;767:26;567:4559;;;;;;;;;;;;;;;;;;;;;;;;875:21;567:4559;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;1260:111::-;567:4559;;1311:20;;;;;;;;;;;;;;;;;;;;;;;;;;567:4559;;;;;:::i;:::-;1311:20;567:4559;;1311:20;3037:121:75;;;567:4559:80;1311:20;567:4559;3037:121:75;;567:4559:80;1311:20;3037:121:75;;;567:4559:80;1311:20;3037:121:75;;;567:4559:80;;;;;;:::i;:::-;1311:20;567:4559;;1311:20;3037:121:75;3208;;567:4559:80;1311:20;567:4559;3208:121:75;;567:4559:80;1311:20;3037:121:75;3208;;567:4559:80;1311:20;3037:121:75;3208;;567:4559:80;;;;;;;:::i;:::-;2506:11:75;567:4559:80;;2602:11:75;3037:121;3380:241;;567:4559:80;2694:2:75;567:4559:80;3380:241:75;;567:4559:80;2775:3:75;3037:121;3380:241;;567:4559:80;3037:121:75;3380:241;;567:4559:80;;3380:241:75;;567:4559:80;1998:10:75;3380:241;;;567:4559:80;1998:10:75;3380:241;;;567:4559:80;1998:10:75;3380:241;;;567:4559:80;1998:10:75;3380:241;;;567:4559:80;1998:10:75;3380:241;;;567:4559:80;;;3638:20:75;;;;;;;;;1311::80;3638::75;;;;;;;;;;;;;:::i;:::-;;;1311::80;3638::75;;;;;567:4559:80;1306:58;567:4559;;1306:58;:::i;:::-;1260:111::o;3638:20:75:-;567:4559:80;;;1311:20;567:4559;;;;;3638:20:75;567:4559:80;1311:20;567:4559;;;;;1311:20;567:4559;3327:221;;;-1:-1:-1;567:4559:80;3431:6;567:4559;;;;;;;;;3431:6;567:4559;;;;;;;;;3480:5;567:4559;;;;;3480:5;567:4559;;;;;;;3784:43;;567:4559;;4078:8;567:4559;;;;4078:33;;;;;;;;4134;;;;;;;4177:81;;4134:33;567:4559;;3440:1;567:4559;;;;;;6030:13:81;;;;;;;;;;;;;;;567:4559:80;6030:13:81;;;;;4134:33:80;567:4559;;;;;;6083:13:81;;6030;6083;6030;6083;;;;;;;;;;567:4559:80;6083:13:81;;;;;4134:33:80;567:4559;;6107:40:81;;;;;;567:4559:80;;;6107:40:81;;6127:4;6030:13;6107:40;;567:4559:80;;;;;;;6127:4:81;567:4559:80;;;;;6107:40:81;;;;;;;;;;;;;4134:33:80;-1:-1:-1;567:4559:80;;;6157:43:81;;567:4559:80;6030:13:81;6157:43;;567:4559:80;;;;;;;6030:13:81;567:4559:80;;;6157:43:81;;;;;;;;;;4134:33:80;6251:40:81;;;;;;567:4559:80;;;6251:40:81;;6127:4;6030:13;6251:40;;567:4559:80;;;;;;;6127:4:81;567:4559:80;;;6127:4:81;6251:40;;;;;;;;;;;;4134:33:80;-1:-1:-1;;567:4559:80;;;6301:43:81;;567:4559:80;6030:13:81;6301:43;;567:4559:80;;;;;;;6030:13:81;567:4559:80;;;6301:43:81;;;;;;;;;;4134:33:80;567:4559;;;;6856:18:81;;6030:13;6856:18;6030:13;6856:18;;;;;;;;;;;;;4134:33:80;6892:25:81;;;6935;6892;;:::i;6935:::-;7093:10;;;;7117:23;7113:214;;4134:33:80;6030:13:81;;567:4559:80;;;;7478:10:81;;;;567:4559:80;7478:10:81;;;;;;;;;;;;;4134:33:80;567:4559;;;;;;;:::i;:::-;;;6030:13:81;7392:194;;567:4559:80;;;;7392:194:81;;567:4559:80;;;;;7392:194:81;;;567:4559:80;3440:1;567:4559;;;7392:194:81;;;567:4559:80;3440:1;567:4559;;;;7392:194:81;;567:4559:80;;;7392:194:81;;;567:4559:80;;;;7392:194:81;;567:4559:80;;;;7392:194:81;;;567:4559:80;;;;7392:194:81;;;567:4559:80;;;;;7392:194:81;;;7561:15;;567:4559:80;;;;7637:17:81;567:4559:80;7637:17:81;;567:4559:80;;;6030:13:81;7637:17;;567:4559:80;;;;;;;;;;;;;;;;3440:1;567:4559;;;;;;3440:1;567:4559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:17:81;;;;;;;1306:42:65;7392:194:81;7637:17;;;;;;;;3327:221:80;;:::o;7637:17:81:-;7392:194;7637:17;;7392:194;7637:17;;;;;;7392:194;7637:17;;;:::i;:::-;;;567:4559:80;;;;;;;6030:13:81;567:4559:80;;;;;;;;;;;-1:-1:-1;;;;3327:221:80:o;7637:17:81:-;;;-1:-1:-1;7637:17:81;;7478:10;;;;;6030:13;7478:10;6030:13;7478:10;;;;;;;:::i;:::-;;;;;7113:214;6127:4;;-1:-1:-1;7113:214:81;;6856:18;;;6030:13;6856:18;;6030:13;6856:18;;;;;;6030:13;6856:18;;;:::i;:::-;;;567:4559:80;;;;;6892:25:81;567:4559:80;6935:25:81;567:4559:80;;:::i;:::-;6856:18:81;;;;;;;;-1:-1:-1;6856:18:81;;6301:43;6030:13;6301:43;;6030:13;6301:43;;;;;;6030:13;6301:43;;;:::i;:::-;;;567:4559:80;;;;;;;:::i;:::-;6301:43:81;;;;;-1:-1:-1;6301:43:81;;6251:40;;;;;:::i;:::-;567:4559:80;;6251:40:81;;;;6157:43;6030:13;6157:43;;6030:13;6157:43;;;;;;6030:13;6157:43;;;:::i;:::-;;;567:4559:80;;;;;;;:::i;:::-;6157:43:81;;;;;-1:-1:-1;6157:43:81;;6107:40;;;;;;;;:::i;:::-;;;;;6083:13;;;;6030;6083;6030;6083;;;;;;;:::i;:::-;;;;6030;;;;;;;;;;;;;;:::i;:::-;;;;4177:81:80;4213:6;;;;;;;:::i;:::-;4241;;;;:::i;:::-;4177:81;;;;4134:33;;;;;;4078;;;;;567:4559;;;;;;;;;;;;;;;;;;;;2867:192;2936:8;567:4559;;;;;2936:90;;;2955:35;2867:192;:::o;2936:90::-;3002:23;2867:192;:::o;567:4559::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;477:7:41:-;567:4559:80;;477:7:41;;;;;;;;:::o;1377:1483:80:-;;1549:1;567:4559;;;1507:45;;;;;;;;;;;;;;;;;;567:4559;;1507:45;;;;;;;567:4559;;;;;;;;;;;;;1507:45;;;;;;;;;567:4559;;1572:49;;;;;;;;;;1507:45;1572:49;;;;;;567:4559;1572:49;;567:4559;1572:49;;;;1589:10;567:4559;;;;;;;1616:4;567:4559;;;;1572:49;;;;;;;;;567:4559;;;;;;;;;;;;8230:54:11;567:4559:80;;;;;;:::i;:::-;;;;;;;;;;;8230:54:11;;;;567:4559:80;8230:54:11;;;567:4559:80;8230:54:11;;;567:4559:80;;;;;;:::i;:::-;1589:10;567:4559;;;;8230:54:11;567:4559:80;8230:54:11;;;;;;:::i;:::-;1222:159;567:4559:80;;1222:159:11;;591:42;1222:159;;;567:4559:80;;1784:50;;;;;;;;;1507:45;1784:50;;;;;567:4559;1784:50;;;;;;;567:4559;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:2;567:4559;;;;1784:50;;;;;;;;;567:4559;1886:13;567:4559;;;;;;;;;;1844:19;567:4559;;;;;;:::i;:::-;;;;;;;;;1844:19;:::i;:::-;1886:13;:::i;:::-;567:4559;;1916:44;;;;;;;;1507:45;1916:44;;;;;;;;567:4559;1916:44;;;567:4559;;;;;;;;;;;;;;;;;;;;;;;;;;;;1958:1;567:4559;;;;1916:44;;;;;;;;;567:4559;;;;;;;;;;1970:20;567:4559;;;;;;:::i;:::-;;;;;;;;;1970:20;:::i;:::-;2013:12;;;:::i;:::-;567:4559;;2451:74;567:4559;;2036:9;567:4559;;;;;2036:9;567:4559;;;;;1958:1;567:4559;2066:28;567:4559;;2066:28;;;567:4559;;;;;;;;;;;;;2113:39;;;;;;;;;567:4559;;;;2104:48;567:4559;;;2104:48;567:4559;2171:39;;;;;;567:4559;;;;;;;1958:1;567:4559;2220:99;567:4559;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2220:99;:::i;:::-;567:4559;;2451:4;567:4559;;;2512:12;;:::i;:::-;567:4559;;;2451:74;;;;;567:4559;2451:74;;567:4559;2451:74;;567:4559;8230:54:11;567:4559:80;;;;;;;;;;;;;;;2451:74;;;;;;;;567:4559;2451:74;;;;;2171:39;567:4559;;;;2036:9;567:4559;;;2036:9;567:4559;2536:23;567:4559;;;;;;:::i;:::-;;;;;;;;;2536:23;:::i;:::-;2582:13;;;:::i;:::-;1958:1;567:4559;;;;;;477:7:41;;;;4078:33:80;;;;2692:23;4078:33;;4134;;;;2692:23;4134:33;;4177:81;;4134:33;567:4559;;;;6030:13:81;;567:4559:80;6030:13:81;567:4559:80;6030:13:81;;;;;;;;;;567:4559:80;6030:13:81;;;;;567:4559:80;;;;;;6083:13:81;;567:4559:80;6083:13:81;567:4559:80;6083:13:81;;;;;;;;;;567:4559:80;6083:13:81;;;;;567:4559:80;;6107:40:81;;;;;;567:4559:80;;;6107:40:81;;6127:4;567:4559:80;6107:40:81;;567:4559:80;;;;;;;6127:4:81;567:4559:80;;;;;6107:40:81;567:4559:80;4177:81;4213:6;;;;567:4559;;477:7:41;;;;;;;4205:14:80;4241:6;4205:14;4241:6;:::i;:::-;4177:81;;;4134:33;2692:23;4134:33;;;4078;2692:23;4078:33;;;2451:74;;;;567:4559;2451:74;567:4559;2451:74;;;;;;;:::i;:::-;;;;2171:39;;;;;2113;;;;;1916:44;8230:54:11;567:4559:80;;;;;;;;;;;;;;;;;-1:-1:-1;567:4559:80;;;;;;;;;;;-1:-1:-1;567:4559:80;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;6598:121:11;1222:159;567:4559:80;6669:42:11;6598:121;;567:4559:80;;6669:42:11;;;;;;;;;;;;567:4559:80;;;;;;:::i;:::-;6669:42:11;;;;;;;;:::i;:::-;1222:159;567:4559:80;;1222:159:11;;591:42;1222:159;;;6598:121::o;6841:116::-;1222:159;6841:116;;567:4559:80;;;6906:43:11;;;;;;567:4559:80;6906:43:11;;;567:4559:80;6906:43:11;;;;;;;:::i;567:4559:80:-;;;;;;;;;;;;;;;;;;:::o;1688:897:81:-;;;;;567:4559:80;;;;;;1897:43:81;;567:4559:80;1897:43:81;;;567:4559:80;;;;;;;1897:43:81;;;;;;;;;;;;;1688:897;567:4559:80;;;;1897:43:81;567:4559:80;;2448:10:81;;;;567:4559:80;2448:10:81;;567:4559:80;2448:10:81;;;;;;;567:4559:80;2448:10:81;;567:4559:80;2448:10:81;1897:43;2448:10;;;1688:897;567:4559:80;;;;;;;:::i;:::-;;;2363:166:81;567:4559:80;2363:166:81;;567:4559:80;;;;;;2363:166:81;;567:4559:80;;;;;2363:166:81;;;2460:10;;567:4559:80;;2363:166:81;;;;2472:15;;567:4559:80;;2363:166:81;;;567:4559:80;;;2363:166:81;;;;567:4559:80;1897:43:81;567:4559:80;;2363:166:81;567:4559:80;2363:166:81;;567:4559:80;;;;;;2546:32:81;;;567:4559:80;;1897:43:81;2546:32;;567:4559:80;;;;;;;;;1897:43:81;567:4559:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2546:32:81;;;1897:43;567:4559:80;2546:32:81;;;;;;;1897:43;2546:32;;;2539:39;1688:897;:::o;2546:32::-;;;567:4559:80;2546:32:81;;567:4559:80;2546:32:81;;;;;;567:4559:80;2546:32:81;;;:::i;:::-;;;567:4559:80;;;;;1688:897:81;:::o;2546:32::-;;;-1:-1:-1;2546:32:81;;2448:10;;;;567:4559:80;2448:10:81;567:4559:80;2448:10:81;;;;;;;:::i;:::-;;;;1897:43;567:4559:80;1897:43:81;;567:4559:80;1897:43:81;;;;;;567:4559:80;1897:43:81;;;:::i;:::-;;;567:4559:80;;;;;;;;;;:::i;:::-;1897:43:81;;;;;;;;-1:-1:-1;1897:43:81;;1688:897;;567:4559:80;1688:897:81;;;;;567:4559:80;;;;;;;1897:43:81;;;;;;567:4559:80;3693:6:81;567:4559:80;;;;;1897:43:81;;;;;;;;;;;;;1688:897;567:4559:80;;;;1897:43:81;567:4559:80;;2448:10:81;;;;567:4559:80;2448:10:81;;567:4559:80;2448:10:81;;;;;;;1897:43;2448:10;;;1688:897;567:4559:80;;;;;;;:::i;:::-;;;;2363:166:81;;567:4559:80;;;;;;2363:166:81;;567:4559:80;;;;;2363:166:81;;;2460:10;567:4559:80;;2363:166:81;;;2472:15;567:4559:80;;2363:166:81;;;567:4559:80;3693:6:81;567:4559:80;;2363:166:81;;;567:4559:80;1897:43:81;567:4559:80;;;2363:166:81;;567:4559:80;;;;;;;2546:32:81;;;;;567:4559:80;2546:32:81;;567:4559:80;;;1897:43:81;2546:32;;567:4559:80;;;;;;;;;;;1897:43:81;567:4559:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2546:32:81;;1897:43;2546:32;;567:4559:80;2546:32:81;;;;;;;1897:43;2546:32;;;2539:39;1688:897;:::o;2448:10::-;;;;;567:4559:80;2448:10:81;567:4559:80;2448:10:81;;;;;;;:::i;:::-;;;;;1897:43;567:4559:80;1897:43:81;;567:4559:80;1897:43:81;;;;;;567:4559:80;1897:43:81;;;:::i;:::-;;;567:4559:80;;;;;;;;;;:::i;:::-;1897:43:81;;;;;;;;-1:-1:-1;1897:43:81;;2906:916;;;-1:-1:-1;567:4559:80;;;;;;2705:12:81;567:4559:80;2705:12:81;;567:4559:80;2705:12:81;;;;;;;;;;;;;;;2906:916;567:4559:80;;;;;;;3175:29:81;;;;3171:113;;567:4559:80;;;3322:13:81;;;;2705:12;3322:13;;;;;;;;567:4559:80;3322:13:81;;2705:12;3322:13;;;;;2906:916;567:4559:80;;;;;3375:13:81;;;;567:4559:80;3375:13:81;;;;;;;;567:4559:80;3375:13:81;;;;;2906:916;-1:-1:-1;567:4559:80;;3419:28:81;;;;;;:68;;;3518:28;;;;:68;;;567:4559:80;;;;3709:33:81;;;;;567:4559:80;;3709:33:81;567:4559:80;;3709:33:81;;;;567:4559:80;3709:33:81;;3730:4;2705:12;3709:33;;567:4559:80;3693:6:81;567:4559:80;;;;3709:33:81;;;;;;;3752:63;3709:33;;;;3518:68;3752:63;;567:4559:80;3752:63:81;:::i;:::-;;2906:916::o;3709:33::-;;;;;:::i;:::-;;;;3518:68;;;;;;3419;;;;;3375:13;;;;3322;3375;3322;3375;;;;;;;:::i;:::-;;;;3322;;;;;;;;;;;;;;:::i;:::-;;;;3171:113;3267:7;;;;;;;:::o;2705:12::-;;;;;567:4559:80;2705:12:81;567:4559:80;2705:12:81;;;;;;;:::i;:::-;;;;;;;;;;;;567:4559:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;602:346:66:-;567:4559:80;;;;;;;;;;;;;;;769:8:66;;765:176;567:4559:80;;;;798:5:66;;;:::i;:::-;567:4559:80;;;;;;;;;798:19:66;807:10;;820;;;;;:::i;798:56::-;833:21;841:12;;;;:::i;:::-;833:21;;:::i;765:176::-;567:4559:80;894:10:66;-1:-1:-1;894:10:66;;;567:4559:80;;;;;;;888:16:66;:53;894:10;;;907:21;915:12;;;;;:::i;:::-;907:21;;:::i;888:53::-;931:10;;;;:::i;567:4559:80:-;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"COIN()":"a54a72b7","USD()":"1bf6c21b","factory()":"c45a0155","fee()":"ddca3f43","init()":"e1c7392a","init(address,address)":"f09a4016","initDebugFees()":"c4b5da74","initNoFees()":"41cca3b5","inverted()":"67e368fc","oneSqrtX96()":"8f7d7c50","pool()":"16f0115b","price()":"a035b1fe","stake(uint256,int24)":"e3baf41a","stake(uint256,int24,int24)":"53486e2f","stake(uint256,uint256,int24,int24)":"d6f13002","swap(address,address,uint256)":"df791e50","swap(address,address,uint256,uint160)":"4a09d3dd","swapTo1()":"3420899b","swapToPrice(uint160)":"c578d91d","token0()":"0dfe1681","token1()":"d21220a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"COIN\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USD\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IVaultFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"contract FeeManager\",\"name\":\"feeManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initDebugFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initNoFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inverted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oneSqrtX96\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"coinAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdAmount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"width\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapTo1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swapToPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MockEnv.sol\":\"MockEnv\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"src/core/FeeManager.sol\":{\"keccak256\":\"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf\",\"urls\":[\"bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4\",\"dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultFactory.sol\":{\"keccak256\":\"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a\",\"urls\":[\"bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668\",\"dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe\",\"urls\":[\"bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a\",\"dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]},\"src/more/FeeManagerLib.sol\":{\"keccak256\":\"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707\",\"urls\":[\"bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885\",\"dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck\"]},\"src/more/MockERC20.sol\":{\"keccak256\":\"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca\",\"urls\":[\"bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a\",\"dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp\"]},\"test/MockEnv.sol\":{\"keccak256\":\"0x8a222b8efd76e9bd6e6cec03190e4953b30b1b3ba70673f060203369d2b7f118\",\"urls\":[\"bzz-raw://a02f1e7acc02fd753e72317e8619f57f6055f4f6b3f46b4b78edf3de3edc48bf\",\"dweb:/ipfs/QmdYAMS1tussRHrtVGGc8LaSvRwC9vLqsEwrmPrAp2SJpL\"]},\"test/MockUtil.sol\":{\"keccak256\":\"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694\",\"urls\":[\"bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f\",\"dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"COIN","outputs":[{"internalType":"contract MockERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USD","outputs":[{"internalType":"contract MockERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IVaultFactory","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"contract FeeManager","name":"feeManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initDebugFees"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initNoFees"},{"inputs":[],"stateMutability":"view","type":"function","name":"inverted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oneSqrtX96","outputs":[{"internalType":"uint160","name":"","type":"uint160"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int24","name":"lower","type":"int24"},{"internalType":"int24","name":"upper","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"uint256","name":"coinAmount","type":"uint256"},{"internalType":"uint256","name":"usdAmount","type":"uint256"},{"internalType":"int24","name":"lower","type":"int24"},{"internalType":"int24","name":"upper","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int24","name":"width","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"contract MockERC20","name":"inToken","type":"address"},{"internalType":"contract MockERC20","name":"outToken","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"contract MockERC20","name":"inToken","type":"address"},{"internalType":"contract MockERC20","name":"outToken","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"swapTo1"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"swapToPrice"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/MockEnv.sol":"MockEnv"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol":{"keccak256":"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032","urls":["bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d","dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol":{"keccak256":"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24","urls":["bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844","dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"src/core/FeeManager.sol":{"keccak256":"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf","urls":["bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4","dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp"],"license":null},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultFactory.sol":{"keccak256":"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a","urls":["bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668","dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe","urls":["bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a","dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null},"src/more/FeeManagerLib.sol":{"keccak256":"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707","urls":["bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885","dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck"],"license":null},"src/more/MockERC20.sol":{"keccak256":"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca","urls":["bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a","dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp"],"license":null},"test/MockEnv.sol":{"keccak256":"0x8a222b8efd76e9bd6e6cec03190e4953b30b1b3ba70673f060203369d2b7f118","urls":["bzz-raw://a02f1e7acc02fd753e72317e8619f57f6055f4f6b3f46b4b78edf3de3edc48bf","dweb:/ipfs/QmdYAMS1tussRHrtVGGc8LaSvRwC9vLqsEwrmPrAp2SJpL"],"license":null},"test/MockUtil.sol":{"keccak256":"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694","urls":["bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f","dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi"],"license":null}},"version":1},"id":80} \ No newline at end of file diff --git a/deployment/arb1/out/MockUtil.sol/MockUtil.json b/deployment/arb1/out/MockUtil.sol/MockUtil.json deleted file mode 100644 index 1f9bc0d..0000000 --- a/deployment/arb1/out/MockUtil.sol/MockUtil.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"FAR_LOWER_TICK","inputs":[],"outputs":[{"name":"","type":"int24","internalType":"int24"}],"stateMutability":"view"},{"type":"function","name":"FAR_UPPER_TICK","inputs":[],"outputs":[{"name":"","type":"int24","internalType":"int24"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523460185760f4908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c9081637dcb280814608a575063ecd1c1cc14603257600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011260855760206040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276e08152f35b600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011260855780620d892060209252f3fea2646970667358221220dfb70a5bfec1aaa4c6fd60c6bbcddebdd6fa95b0c89eb9a818d9415f706e9cd064736f6c634300081a0033","sourceMap":"511:7298:81:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c9081637dcb280814608a575063ecd1c1cc14603257600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011260855760206040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276e08152f35b600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011260855780620d892060209252f3fea2646970667358221220dfb70a5bfec1aaa4c6fd60c6bbcddebdd6fa95b0c89eb9a818d9415f706e9cd064736f6c634300081a0033","sourceMap":"511:7298:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;637:9:41;511:7298:81;;;","linkReferences":{}},"methodIdentifiers":{"FAR_LOWER_TICK()":"ecd1c1cc","FAR_UPPER_TICK()":"7dcb2808"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FAR_LOWER_TICK\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FAR_UPPER_TICK\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/MockUtil.sol\":\"MockUtil\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/more/MockERC20.sol\":{\"keccak256\":\"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca\",\"urls\":[\"bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a\",\"dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp\"]},\"test/MockUtil.sol\":{\"keccak256\":\"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694\",\"urls\":[\"bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f\",\"dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"FAR_LOWER_TICK","outputs":[{"internalType":"int24","name":"","type":"int24"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FAR_UPPER_TICK","outputs":[{"internalType":"int24","name":"","type":"int24"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/MockUtil.sol":"MockUtil"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/more/MockERC20.sol":{"keccak256":"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca","urls":["bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a","dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp"],"license":null},"test/MockUtil.sol":{"keccak256":"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694","urls":["bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f","dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi"],"license":null}},"version":1},"id":81} \ No newline at end of file diff --git a/deployment/arb1/out/OrderLib.sol/OrderLib.json b/deployment/arb1/out/OrderLib.sol/OrderLib.json deleted file mode 100644 index ba4f157..0000000 --- a/deployment/arb1/out/OrderLib.sol/OrderLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212202dd7fe4a0187625890259d35d3c565acd25cbe8689b5c860c32e81236cf295c364736f6c634300081a0033","sourceMap":"459:18651:61:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212202dd7fe4a0187625890259d35d3c565acd25cbe8689b5c860c32e81236cf295c364736f6c634300081a0033","sourceMap":"459:18651:61:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/OrderLib.sol\":\"OrderLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/OrderLib.sol":"OrderLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null}},"version":1},"id":61} \ No newline at end of file diff --git a/deployment/arb1/out/PoolAddress.sol/PoolAddress.json b/deployment/arb1/out/PoolAddress.sol/PoolAddress.json deleted file mode 100644 index 166fe54..0000000 --- a/deployment/arb1/out/PoolAddress.sol/PoolAddress.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212200964d4e9fe03edeeec3249ae8942a0ec66f2607ac5380c1fb72dbcdf6b5248a964736f6c634300081a0033","sourceMap":"167:1661:51:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212200964d4e9fe03edeeec3249ae8942a0ec66f2607ac5380c1fb72dbcdf6b5248a964736f6c634300081a0033","sourceMap":"167:1661:51:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Provides functions for deriving a pool address from the factory, tokens, and the fee\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":\"PoolAddress\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":"PoolAddress"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"}},"version":1},"id":51} \ No newline at end of file diff --git a/deployment/arb1/out/Proxy.sol/Proxy.json b/deployment/arb1/out/Proxy.sol/Proxy.json deleted file mode 100644 index 5bc8dba..0000000 --- a/deployment/arb1/out/Proxy.sol/Proxy.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":"Proxy"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"}},"version":1},"id":20} \ No newline at end of file diff --git a/deployment/arb1/out/QueryHelper.sol/QueryHelper.json b/deployment/arb1/out/QueryHelper.sol/QueryHelper.json deleted file mode 100644 index b4ff50f..0000000 --- a/deployment/arb1/out/QueryHelper.sol/QueryHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"contract IUniswapV3Factory"}],"stateMutability":"nonpayable"},{"type":"function","name":"UNKNOWN_DECIMALS","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV3Factory"}],"stateMutability":"view"},{"type":"function","name":"getBalances","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"tokens","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"balances","type":"uint256[]","internalType":"uint256[]"},{"name":"decimals","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getRoutes","inputs":[{"name":"tokenA","type":"address","internalType":"address"},{"name":"tokenB","type":"address","internalType":"address"}],"outputs":[{"name":"routes","type":"tuple[]","internalType":"struct QueryHelper.RoutesResult[]","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"pool","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"poolStatus","inputs":[{"name":"pool","type":"address","internalType":"contract IUniswapV3Pool"}],"outputs":[{"name":"tick","type":"int24","internalType":"int24"},{"name":"liquidity","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a034606657601f610ce638819003918201601f19168301916001600160401b03831184841017606b57808492602094604052833981010312606657516001600160a01b0381168103606657608052604051610c64908161008282396080518161050c0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c9081633c38ccbb146108a85750806354fd4d501461086e5780636a385ae91461056a578063b8df978014610530578063c45a0155146104c15763d85c32c71461006157600080fd5b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57610098610aa6565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036104bc576040516080810181811067ffffffffffffffff82111761048d57604052606481526101f46020820152610bb860408201526127106060820152600092600073ffffffffffffffffffffffffffffffffffffffff600092169360009281861015935b600460ff821610156102ef57600062ffffff611fe08360051b168801511686816040805161014781610ac9565b8c815288602082015201526102eb5773ffffffffffffffffffffffffffffffffffffffff60405160208101908b825287604082015283606082015260608152610191608082610ae5565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460558201526055815261021f607582610ae5565b519020169081156102de576040517f70a08231000000000000000000000000000000000000000000000000000000008152600481018390526020816024818e5afa9384156102d2578094610299575b5050868311610288575b505050600160ff915b011661011a565b99509094509150600160ff38610278565b909193506020823d82116102ca575b816102b560209383610ae5565b810103126102c757505191388061026e565b80fd5b3d91506102a8565b604051903d90823e3d90fd5b505050600160ff91610281565b5080fd5b5062ffffff87168015801592906104845760ff60015b16927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061034a61033486610b26565b956103426040519788610ae5565b808752610b26565b0160005b81811061045857505061040b575b5050604051602081019160208252805180935260206040830191019260005b8181106103885783830384f35b90918451805160028110156103dc578273ffffffffffffffffffffffffffffffffffffffff60406020946060946001975262ffffff868201511686850152015116604082015201950191019391909361037b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff906040519261042e84610ac9565b60018452602084015216604082015261044682610bde565b5261045081610bde565b50818061035c565b60209060405161046781610ac9565b60008152600083820152600060408201528282890101520161034e565b60ff6000610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160ff8152f35b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc576105a1610aa6565b6024359067ffffffffffffffff82116104bc57366023830112156104bc5781600401356105cd81610b26565b926105db6040519485610ae5565b8184526024602085019260051b820101903682116104bc57602401915b81831061084157505050815161ffff8110156104bc5761061790610b8f565b906106228351610b8f565b9073ffffffffffffffffffffffffffffffffffffffff1660005b845161ffff821690811015610813579081602073ffffffffffffffffffffffffffffffffffffffff6106706024958a610c1a565b5116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa806000916107db575b600494506107cb575060006106c28288610c1a565b525b602073ffffffffffffffffffffffffffffffffffffffff6106e5838a610c1a565b5116604051948580927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80600091610789575b61ffff9450610775575061073260ff9186610c1a565b525b1661ffff81146107465760010161063c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff61078391169186610c1a565b52610734565b919293906020823d82116107c3575b816107a560209383610ae5565b810103126102c75750906107bd61ffff949392610b81565b9061071c565b3d9150610798565b6107d58288610c1a565b526106c4565b919293906020823d821161080b575b816107f760209383610ae5565b810103126102c757505160049392916106ad565b3d91506107ea565b61082f8561083d86604051938493604085526040850190610b3e565b908382036020850152610b3e565b0390f35b823573ffffffffffffffffffffffffffffffffffffffff811681036104bc578152602092830192016105f8565b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160018152f35b346104bc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc5760043573ffffffffffffffffffffffffffffffffffffffff81168091036104bc577f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa9182156109f957600092610a05575b50906020600492604051938480927f1a6865020000000000000000000000000000000000000000000000000000000082525afa9182156109f95760009261099a575b506fffffffffffffffffffffffffffffffff60409283519260020b8352166020820152f35b6020813d6020116109f1575b816109b360209383610ae5565b810103126109ed5751916fffffffffffffffffffffffffffffffff831683036102c757506fffffffffffffffffffffffffffffffff610975565b8280fd5b3d91506109a6565b6040513d6000823e3d90fd5b9160e0833d60e011610a9e575b81610a1f60e09383610ae5565b810103126102c757825173ffffffffffffffffffffffffffffffffffffffff8116036102c7576020830151928360020b84036102eb5780610a64604060c09301610b72565b50610a7160608201610b72565b50610a7e60808201610b72565b50610a8b60a08201610b81565b500151801515036102c757506020610933565b3d9150610a12565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104bc57565b6060810190811067ffffffffffffffff82111761048d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761048d57604052565b67ffffffffffffffff811161048d5760051b60200190565b906020808351928381520192019060005b818110610b5c5750505090565b8251845260209384019390920191600101610b4f565b519061ffff821682036104bc57565b519060ff821682036104bc57565b90610b9982610b26565b610ba66040519182610ae5565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610bd48294610b26565b0190602036910137565b805115610beb5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015610beb5760209160051b01019056fea26469706673582212205696eb2dd0fb23433a05a3bbbc207a0d1a56c25d660d156565443d6ee58f2d2c64736f6c634300081a0033","sourceMap":"502:3410:77:-:0;;;;;;;;;;;;;-1:-1:-1;;502:3410:77;;;;-1:-1:-1;;;;;502:3410:77;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;502:3410:77;;;;;;732:18;;502:3410;;;;;;;;732:18;502:3410;;;;;;;-1:-1:-1;502:3410:77;;;;;;-1:-1:-1;502:3410:77;;;;;-1:-1:-1;502:3410:77","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c9081633c38ccbb146108a85750806354fd4d501461086e5780636a385ae91461056a578063b8df978014610530578063c45a0155146104c15763d85c32c71461006157600080fd5b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57610098610aa6565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036104bc576040516080810181811067ffffffffffffffff82111761048d57604052606481526101f46020820152610bb860408201526127106060820152600092600073ffffffffffffffffffffffffffffffffffffffff600092169360009281861015935b600460ff821610156102ef57600062ffffff611fe08360051b168801511686816040805161014781610ac9565b8c815288602082015201526102eb5773ffffffffffffffffffffffffffffffffffffffff60405160208101908b825287604082015283606082015260608152610191608082610ae5565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f1f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460558201526055815261021f607582610ae5565b519020169081156102de576040517f70a08231000000000000000000000000000000000000000000000000000000008152600481018390526020816024818e5afa9384156102d2578094610299575b5050868311610288575b505050600160ff915b011661011a565b99509094509150600160ff38610278565b909193506020823d82116102ca575b816102b560209383610ae5565b810103126102c757505191388061026e565b80fd5b3d91506102a8565b604051903d90823e3d90fd5b505050600160ff91610281565b5080fd5b5062ffffff87168015801592906104845760ff60015b16927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061034a61033486610b26565b956103426040519788610ae5565b808752610b26565b0160005b81811061045857505061040b575b5050604051602081019160208252805180935260206040830191019260005b8181106103885783830384f35b90918451805160028110156103dc578273ffffffffffffffffffffffffffffffffffffffff60406020946060946001975262ffffff868201511686850152015116604082015201950191019391909361037b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff906040519261042e84610ac9565b60018452602084015216604082015261044682610bde565b5261045081610bde565b50818061035c565b60209060405161046781610ac9565b60008152600083820152600060408201528282890101520161034e565b60ff6000610305565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160ff8152f35b346104bc5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc576105a1610aa6565b6024359067ffffffffffffffff82116104bc57366023830112156104bc5781600401356105cd81610b26565b926105db6040519485610ae5565b8184526024602085019260051b820101903682116104bc57602401915b81831061084157505050815161ffff8110156104bc5761061790610b8f565b906106228351610b8f565b9073ffffffffffffffffffffffffffffffffffffffff1660005b845161ffff821690811015610813579081602073ffffffffffffffffffffffffffffffffffffffff6106706024958a610c1a565b5116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082528860048301525afa806000916107db575b600494506107cb575060006106c28288610c1a565b525b602073ffffffffffffffffffffffffffffffffffffffff6106e5838a610c1a565b5116604051948580927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80600091610789575b61ffff9450610775575061073260ff9186610c1a565b525b1661ffff81146107465760010161063c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff61078391169186610c1a565b52610734565b919293906020823d82116107c3575b816107a560209383610ae5565b810103126102c75750906107bd61ffff949392610b81565b9061071c565b3d9150610798565b6107d58288610c1a565b526106c4565b919293906020823d821161080b575b816107f760209383610ae5565b810103126102c757505160049392916106ad565b3d91506107ea565b61082f8561083d86604051938493604085526040850190610b3e565b908382036020850152610b3e565b0390f35b823573ffffffffffffffffffffffffffffffffffffffff811681036104bc578152602092830192016105f8565b346104bc5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc57602060405160018152f35b346104bc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104bc5760043573ffffffffffffffffffffffffffffffffffffffff81168091036104bc577f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa9182156109f957600092610a05575b50906020600492604051938480927f1a6865020000000000000000000000000000000000000000000000000000000082525afa9182156109f95760009261099a575b506fffffffffffffffffffffffffffffffff60409283519260020b8352166020820152f35b6020813d6020116109f1575b816109b360209383610ae5565b810103126109ed5751916fffffffffffffffffffffffffffffffff831683036102c757506fffffffffffffffffffffffffffffffff610975565b8280fd5b3d91506109a6565b6040513d6000823e3d90fd5b9160e0833d60e011610a9e575b81610a1f60e09383610ae5565b810103126102c757825173ffffffffffffffffffffffffffffffffffffffff8116036102c7576020830151928360020b84036102eb5780610a64604060c09301610b72565b50610a7160608201610b72565b50610a7e60808201610b72565b50610a8b60a08201610b81565b500151801515036102c757506020610933565b3d9150610a12565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104bc57565b6060810190811067ffffffffffffffff82111761048d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761048d57604052565b67ffffffffffffffff811161048d5760051b60200190565b906020808351928381520192019060005b818110610b5c5750505090565b8251845260209384019390920191600101610b4f565b519061ffff821682036104bc57565b519060ff821682036104bc57565b90610b9982610b26565b610ba66040519182610ae5565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610bd48294610b26565b0190602036910137565b805115610beb5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015610beb5760209160051b01019056fea26469706673582212205696eb2dd0fb23433a05a3bbbc207a0d1a56c25d660d156565443d6ee58f2d2c64736f6c634300081a0033","sourceMap":"502:3410:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2016:3;502:3410;;2021:3;502:3410;2008:28;;502:3410;2025:4;502:3410;2008:28;;502:3410;2030:5;2008:28;;;502:3410;;2200:30;502:3410;;;;;2327:9;502:3410;1421:23:51;;;;502:3410:77;2322:975;2343:3;502:3410;;;;2338:3;;;;502:3410;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:61:65;;;2557:40:77;502:3410;2557:40;;1058:61:65;2557:40:77;502:3410;;;;;;;1665:43:51;;502:3410:77;;;;;;;;;;2008:28;502:3410;;;2008:28;1665:43:51;;;502:3410:77;1665:43:51;;:::i;:::-;502:3410:77;1655:54:51;;502:3410:77;;;1547:229:51;;241:66;;;;;;;;;;;;502:3410:77;241:66:51;1547:229;241:66;;502:3410:77;1547:229:51;;;;;;;:::i;:::-;502:3410:77;1516:278:51;;502:3410:77;2617:27;;;2613:119;;502:3410;;;3021:29;;502:3410;3021:29;;502:3410;;;;;;;;3021:29;;;;;;;;;;;2343:3;3108:30;;;;;3104:183;;2343:3;;;;502:3410;;2343:3;2327:9;502:3410;;2327:9;;3104:183;3159:18;-1:-1:-1;3159:18:77;;-1:-1:-1;3159:18:77;-1:-1:-1;502:3410:77;;3104:183;;;3021:29;;;;;502:3410;3021:29;;;;;;;;;502:3410;3021:29;;;:::i;:::-;;;502:3410;;;;;;3021:29;;;;;502:3410;;;3021:29;;;-1:-1:-1;3021:29:77;;;502:3410;;;;;;;;;;2613:119;2709:8;;;502:3410;;2709:8;;;502:3410;;;;2338:3;-1:-1:-1;502:3410:77;;;3326:16;;;;;:51;;;502:3410;;3326:51;502:3410;;;1058:61:65;502:3410:77;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1058:61:65;:::i;:::-;;502:3410:77;1058:61:65;;;;;;3573:122:77;;;;1058:61:65;502:3410:77;;;;;;;;;;;;;;;;;;;;1058:61:65;;502:3410:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:28;502:3410;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3573:122;502:3410;;;;;;;;:::i;:::-;;1058:61:65;;502:3410:77;3622:73;;502:3410;;;3622:73;;1058:61:65;3608:87:77;;;:::i;:::-;;;;;:::i;:::-;;3573:122;;;;1058:61:65;502:3410:77;;;;;;;:::i;:::-;;1058:61:65;;502:3410:77;1058:61:65;;;;502:3410:77;;1058:61:65;;;;;;;;;;;;3326:51:77;502:3410;;3326:51;;502:3410;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:42;502:3410;;;;;;;;;;;;;;;;;;609:15;502:3410;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;945:32;;502:3410;;;999:28;;;:::i;:::-;502:3410;1048:28;502:3410;;1048:28;:::i;:::-;1091:10;502:3410;;;1122:3;502:3410;;;;;1103:17;;;;;;1153:9;;502:3410;;1153:9;502:3410;1153:9;;;:::i;:::-;502:3410;;;;1146:34;;;;502:3410;1146:34;;;502:3410;1146:34;;502:3410;1146:34;;;502:3410;1146:34;;;1122:3;502:3410;;-1:-1:-1;1142:186:77;;1298:15;502:3410;1298:15;;;;:::i;:::-;502:3410;1142:186;502:3410;;1351:9;;;;:::i;:::-;502:3410;;;;1345:27;;;;502:3410;1345:27;;;;;502:3410;1345:27;;;1142:186;502:3410;;-1:-1:-1;1341:184:77;;1480:30;;502:3410;1480:30;;;:::i;:::-;502:3410;1341:184;502:3410;;;;;;;;1091:10;;502:3410;;;;;;;;;;1341:184;502:3410;1411:17;502:3410;;1411:17;;;:::i;:::-;502:3410;1341:184;;1345:27;;;;;502:3410;1345:27;;;;;;;;;502:3410;1345:27;;;:::i;:::-;;;502:3410;;;;;;;;;;;;:::i;:::-;1345:27;;;;;;-1:-1:-1;1345:27:77;;1142:186;1225:21;;;;:::i;:::-;502:3410;1142:186;;1146:34;;;;;502:3410;1146:34;;;;;;;;;502:3410;1146:34;;;:::i;:::-;;;502:3410;;;;-1:-1:-1;502:3410:77;;;;;1146:34;;;;;-1:-1:-1;1146:34:77;;1103:17;502:3410;1103:17;502:3410;1103:17;502:3410;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;561:1;502:3410;;;;;;;;;;;;;;;;;;;;;;;;;3853:12;;502:3410;3853:12;502:3410;3853:12;;;;;;;;;502:3410;3853:12;;;502:3410;;;;;;;;3887:16;;;;502:3410;3887:16;;;;;;;;;502:3410;3887:16;;;502:3410;;;;;;;;;;;;;;;;;;3887:16;502:3410;3887:16;;502:3410;3887:16;;;;;;502:3410;3887:16;;;:::i;:::-;;;502:3410;;;;;;;;;;;;;3887:16;502:3410;3887:16;;502:3410;;;;3887:16;;;-1:-1:-1;3887:16:77;;;502:3410;;;;;;;;;3853:12;;502:3410;3853:12;;502:3410;3853:12;;;;;;502:3410;3853:12;;;:::i;:::-;;;502:3410;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;3853:12;502:3410;3853:12;;;;;-1:-1:-1;3853:12:77;;502:3410;;;;;;;;;;;:::o;:::-;2008:28;502:3410;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;502:3410:77;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{},"immutableReferences":{"53661":[{"start":1292,"length":32}]}},"methodIdentifiers":{"UNKNOWN_DECIMALS()":"b8df9780","factory()":"c45a0155","getBalances(address,address[])":"6a385ae9","getRoutes(address,address)":"d85c32c7","poolStatus(address)":"3c38ccbb","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"factory_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UNKNOWN_DECIMALS\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"getBalances\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"balances\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"decimals\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getRoutes\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"}],\"internalType\":\"struct QueryHelper.RoutesResult[]\",\"name\":\"routes\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"poolStatus\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/more/QueryHelper.sol\":\"QueryHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/more/QueryHelper.sol\":{\"keccak256\":\"0x6f8ccbeadf0a9c2f9f01c8df7f9d87a9e3c825364233ddd357d073daa294c3b4\",\"urls\":[\"bzz-raw://f6748ab572c37f51911bd17a850439de25b5535702806913a086d7f4cb689414\",\"dweb:/ipfs/QmRgFea76vtepFeWx4fhZEzgUb76KQyKsmAztifDEMCXTx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IUniswapV3Factory","name":"factory_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"UNKNOWN_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"view","type":"function","name":"getBalances","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"},{"internalType":"uint256[]","name":"decimals","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"stateMutability":"view","type":"function","name":"getRoutes","outputs":[{"internalType":"struct QueryHelper.RoutesResult[]","name":"routes","type":"tuple[]","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"pool","type":"address"}]}]},{"inputs":[{"internalType":"contract IUniswapV3Pool","name":"pool","type":"address"}],"stateMutability":"view","type":"function","name":"poolStatus","outputs":[{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/more/QueryHelper.sol":"QueryHelper"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/more/QueryHelper.sol":{"keccak256":"0x6f8ccbeadf0a9c2f9f01c8df7f9d87a9e3c825364233ddd357d073daa294c3b4","urls":["bzz-raw://f6748ab572c37f51911bd17a850439de25b5535702806913a086d7f4cb689414","dweb:/ipfs/QmRgFea76vtepFeWx4fhZEzgUb76KQyKsmAztifDEMCXTx"],"license":null}},"version":1},"id":77} \ No newline at end of file diff --git a/deployment/arb1/out/ReentrancyGuard.sol/ReentrancyGuard.json b/deployment/arb1/out/ReentrancyGuard.sol/ReentrancyGuard.json deleted file mode 100644 index 05b04c0..0000000 --- a/deployment/arb1/out/ReentrancyGuard.sol/ReentrancyGuard.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at, consider using {ReentrancyGuardTransient} instead. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":"ReentrancyGuard"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"}},"version":1},"id":28} \ No newline at end of file diff --git a/deployment/arb1/out/Router.sol/ArbitrumRouter.json b/deployment/arb1/out/Router.sol/ArbitrumRouter.json deleted file mode 100644 index 53faf85..0000000 --- a/deployment/arb1/out/Router.sol/ArbitrumRouter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"protectedPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"rawPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"params","type":"tuple","internalType":"struct IRouter.SwapParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"limitPriceX96","type":"uint256","internalType":"uint256"},{"name":"maxFee","type":"uint24","internalType":"uint24"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a0033","sourceMap":"1222:185:63:-:0;;;;;;;1076:42:65;1214:18:64;;1178:42:65;1242:24:64;;1369:2:63;1276:30:64;;1222:185:63;;;;;;1242:24:64;1222:185:63;;;;;;;;;;1214:18:64;1222:185:63;;;;;;;;;;1276:30:64;1222:185:63;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a0033","sourceMap":"1222:185:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1222:185:63;;;;;-1:-1:-1;1222:185:63;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;441:259::-;;;;;1222:185;;;;;;590:18;578:30;574:97;;1222:185;;681:12;;;1222:185;681:12;;;1222:185;;;;;;;;;;;;;681:12;574:97;629:42;;;:::i;:::-;622:49;:::o;1222:185::-;;;;;;;;;;706:271;;;;;1222:185;;;;;;861:18;849:30;845:103;;1222:185;;958:12;;;1222:185;958:12;;;1222:185;;;;;;;;;;;;;681:12;845:103;900:48;;;:::i;983:233::-;;;;1222:185;;;;;;1129:18;1117:30;1113:74;;1222:185;;1197:12;;;1222:185;1197:12;;;1222:185;;;;;;;;;;;;;681:12;1113:74;-1:-1:-1;1168:19:63;3128:20:64;;;1222:185:63;;;3128:25:64;;;;3124:450;;1113:74:63;-1:-1:-1;;3587:20:64;;;1222:185:63;;3587:20:64;;3645:29;4731:13;;;1222:185:63;;4772:47:64;1222:185:63;;;;;;;4772:47:64;;;;1222:185:63;4772:47:64;;4813:4;4772:47;;;1222:185:63;4772:47:64;;;;;;;-1:-1:-1;4772:47:64;;;3583:172;4912:12;;;:42;;;;3583:172;4908:111;;5033:18;;;5029:55;;3583:172;1222:185:63;;5391:44:64;1222:185:63;;;;5146:10:64;5159:8;5146:10;;;1222:185:63;5159:8:64;;;:::i;:::-;1222:185:63;4731:13:64;1222:185:63;5391:44:64;:::i;:::-;1222:185:63;;;;;;5710:15:64;1222:185:63;;5710:15:64;;1222:185:63;;;;5732:13:64;;1222:185:63;;;;5758:16:64;;1222:185:63;;;;;;;;;:::i;:::-;;;;5626:277:64;;1222:185:63;;;;5626:277:64;;;1222:185:63;;;4731:13:64;5626:277;;1222:185:63;;;5798:15:64;5626:277;;;1222:185:63;;;3587:20:64;5626:277;;1222:185:63;;;1129:18;3128:20:64;5626:277;;1222:185:63;;;;5626:277:64;;1222:185:63;;;;;;5598:306:64;;1222:185:63;;;;;;4772:47:64;5598:306;;1222:185:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:306:64;;;-1:-1:-1;5598:306:64;;;;;;;;-1:-1:-1;5598:306:64;;;3583:172;1222:185:63;;5986:66:64;1222:185:63;;;;5986:66:64;:::i;5598:306::-;;;1222:185:63;5598:306:64;;1222:185:63;5598:306:64;;;;;;1222:185:63;5598:306:64;;;:::i;:::-;;;1222:185:63;;;;;;;;5598:306:64;;;;;-1:-1:-1;5598:306:64;;;1222:185:63;;;-1:-1:-1;1222:185:63;;;;;5029:55:64;5066:18;-1:-1:-1;5029:55:64;;;4908:111;1222:185:63;;5006:13:64;;;1222:185:63;4772:47:64;5006:13;;1222:185:63;;;;;;;;;;;;;681:12;4912:42:64;4938:16;;;;1222:185:63;4928:26:64;;4912:42;;4772:47;;1222:185:63;4772:47:64;;1222:185:63;4772:47:64;;;;;;1222:185:63;4772:47:64;;;:::i;:::-;;;1222:185:63;;;;;;4772:47:64;;;1222:185:63;;;4772:47:64;;;-1:-1:-1;4772:47:64;;3583:172;3725:30;;6198:16;6216:17;;6630:47;1222:185:63;;;;;;;6630:47:64;;;;1222:185:63;6630:47:64;;6671:4;6630:47;;;1222:185:63;6630:47:64;;;;;;;;;;;3583:172;6691:12;;;6687:44;;1222:185:63;7383:44:64;1222:185:63;;;;7311:10:64;7324:11;7311:10;;;1222:185:63;7324:11:64;;;:::i;7383:44::-;1222:185:63;;;;;;7696:15:64;1222:185:63;7696:15:64;;1222:185:63;;;;;7718:13:64;1222:185:63;7718:13:64;;1222:185:63;;;;7582:335:64;1222:185:63;;;;7744:16:64;1222:185:63;7744:16:64;;1222:185:63;;7424:2:64;1222:185:63;;;;7812:13:64;;1222:185:63;;;;;;;;;;:::i;:::-;;;7611:305:64;;;1222:185:63;;7611:305:64;;1222:185:63;7424:2:64;7611:305;;1222:185:63;7784:15:64;7611:305;;;1222:185:63;3587:20:64;7611:305;;1222:185:63;7611:305:64;3128:20;7611:305;;1222:185:63;7611:305:64;1222:185:63;7611:305:64;;1222:185:63;;;;7582:335:64;;;;;1222:185:63;7582:335:64;;6630:47;7582:335;;1222:185:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7582:335:64;;;;;;;3583:172;-1:-1:-1;7578:1236:64;;;;1129:18:63;7578:1236:64;;;:::i;:::-;;;;;;;;;;;;;;;1222:185:63;9193:66:64;7578:1236;;1222:185:63;;9193:66:64;:::i;7578:1236::-;1222:185:63;;;;;;;;;;7578:1236:64;8031:783;;:::i;:::-;;;;;7578:1236;;;;8031:783;;;;;;;;;;;;;;;1222:185:63;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8272:292:64;;1222:185:63;;;;8272:292:64;;;1222:185:63;;;7424:2:64;8272:292;;1222:185:63;;;7784:15:64;7611:305;8272:292;;1222:185:63;;;3587:20:64;8272:292;;1222:185:63;;;1129:18;3128:20:64;8272:292;;1222:185:63;;;;8272:292:64;;1222:185:63;;;;;;8244:321:64;;1222:185:63;;;;;;6630:47:64;8244:321;;1222:185:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8244:321:64;7582:335;8244:321;;;;;;;;;;8031:783;-1:-1:-1;8240:564:64;;;;;;:::i;:::-;7578:1236;8240:564;;;;1222:185:63;;;;;;;;;;;8240:564:64;8695:109;;:::i;:::-;;8240:564;8695:109;1222:185:63;;8742:14:64;;;;;1222:185:63;6630:47:64;8742:14;;1222:185:63;;;;;6630:47:64;1222:185:63;;;;;;;;;;;;;;;;;;;;;;;;;;;8742:14:64;;;;1222:185:63;;;;;;;;;;;;;;;;-1:-1:-1;1222:185:63;;;8240:564:64;8609:22;;;-1:-1:-1;8609:22:64;;;;8031:783;;;;;;;;8244:321;;;;1222:185:63;8244:321:64;;1222:185:63;8244:321:64;;;;;;1222:185:63;8244:321:64;;;:::i;:::-;;;1222:185:63;;;;;8244:321:64;;;;1222:185:63;;;;8244:321:64;;;-1:-1:-1;8244:321:64;;7578:1236;7956:16;;;;;;;;9193:66;7956:16;;;;1222:185:63;7956:16:64;;1222:185:63;;7578:1236:64;;;7582:335;;;;1222:185:63;7582:335:64;;1222:185:63;7582:335:64;;;;;;1222:185:63;7582:335:64;;;:::i;:::-;;;1222:185:63;;;;;7582:335:64;;;;;;;-1:-1:-1;7582:335:64;;6630:47;;;1222:185:63;6630:47:64;;1222:185:63;6630:47:64;;;;;;1222:185:63;6630:47:64;;;:::i;:::-;;;1222:185:63;;;;;6630:47:64;;;1222:185:63;;;;6630:47:64;;;-1:-1:-1;6630:47:64;;;1222:185:63;;;;;;;;;3124:450:64;1222:185:63;;;;;3203:15:64;;;1222:185:63;;-1:-1:-1;3232:228:64;3124:450;3232:228;1222:185:63;;3409:13:64;1222:185:63;;;3232:228:64;;3124:450;;1222:185:63;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1319:336:64:-;1222:185:63;1319:336:64;;1222:185:63;1319:336:64;1485:53;1319:336;1503:7;1485:53;:::i;:::-;1222:185:63;;1579:12:64;1222:185:63;;1579:12:64;;;;1222:185:63;1579:12:64;;1222:185:63;1579:12:64;;;;;;-1:-1:-1;1579:12:64;;;1319:336;1608:40;;;;;:::i;1579:12::-;1222:185:63;1579:12:64;;1222:185:63;1579:12:64;;;;;;1222:185:63;1579:12:64;;;:::i;:::-;;;1222:185:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;1608:40:64;1222:185:63;;;;:::i;:::-;;1579:12:64;;;;;;;;-1:-1:-1;1579:12:64;;1222:185:63;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;2168:1:64;1222:185:63;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1222:185:63;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;1706:1288:64:-;;;1222:185:63;1916:13:64;1222:185:63;1916:16:64;1912:1017;;1706:1288;2945:42;;;;:::i;1912:1017::-;1986:53;2004:7;;;;1986:53;:::i;:::-;1222:185:63;;;;;;;;;:::i;:::-;2096:1:64;1222:185:63;;;;;;;;;;2112:30:64;;;;:::i;:::-;1222:185:63;;2156:18:64;;;:::i;:::-;1222:185:63;;;2192:25:64;;;1222:185:63;2192:25:64;;1222:185:63;;;2192:25:64;1222:185:63;2192:25:64;;;1222:185:63;;;;;;;;;;;;;;;;;2192:25:64;;;;;1222:185:63;2192:25:64;1222:185:63;2192:25:64;;1222:185:63;;2192:25:64;;1222:185:63;;2192:25:64;;;1222:185:63;-1:-1:-1;2188:731:64;;;;;2168:1;2188:731;;:::i;:::-;;;;;;;;2945:42;1912:1017;;2188:731;2760:159;;:::i;:::-;;2188:731;2760:159;;1222:185:63;2188:731:64;;;2304:13;;-1:-1:-1;2304:13:64;-1:-1:-1;2304:13:64;-1:-1:-1;2320:13:64;2304;;;:::i;:::-;1222:185:63;;;2320:13:64;;:::i;:::-;1222:185:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2096:1:64;1222:185:63;2458:9:64;1222:185:63;2458:9:64;;:33;;;;2188:731;2454:65;;;;2188:731;2096:1;1222:185:63;;;1478:8:41;;1222:185:63;;;;;;1478:57:41;;477:7;1553:36;;637:9;;2168:1:64;1622:13:41;;:18;2168:1:64;;637:9:41;1643:34;1622:93;637:9;1729:13;2096:1:64;1729:13:41;;1725:83;;1622:93;2192:25:64;1822:13:41;;1818:83;;1622:93;1925:3;1915:13;;1911:83;;1622:93;2018:4;2008:14;;2004:84;;1622:93;1222:185:63;2102:14:41;;2098:84;;1622:93;1222:185:63;2196:14:41;;2192:84;;1622:93;2300:4;2290:14;;2286:84;;1622:93;2394:5;2384:15;;2380:85;;1622:93;2489:5;2479:15;;2475:85;;1622:93;2584:5;2574:15;;2570:85;;1622:93;2679:5;2669:15;;2665:85;;1622:93;2774:6;2764:16;;2760:86;;1622:93;2870:6;2860:16;;2856:86;;1622:93;2966:6;2956:16;;2952:86;;1622:93;3062:6;3052:16;;3048:86;;1622:93;3158:7;3148:17;;3144:86;;1622:93;3254:7;3244:17;;3240:85;;1622:93;3349:7;3339:17;;3335:83;;1622:93;3442:7;3432:17;3428:78;;1622:93;1222:185:63;-1:-1:-1;3517:47:41;;1622:93;1222:185:63;2692:40:64;3914:30:41;1222:185:63;637:9:41;;3914:22;:30;1222:185:63;;;;;3914:30:41;1222:185:63;637:9:41;1222:185:63;637:9:41;;1222:185:63;2692:40:64;:::i;3914:30:41:-;1222:185:63;2168:1:64;3914:30:41;;3517:47;1222:185:63;;;;;;;;;;3517:47:41;;1222:185:63;;;;;2192:25:64;1222:185:63;;;;3428:78:41;3473:25;637:9;;;2300:4;637:9;;3428:78;;3335:83;3380:30;637:9;;;2300:4;637:9;;3335:83;;3240:85;637:9;3285:32;637:9;2300:4;637:9;3240:85;;;3144:86;637:9;3189:33;637:9;2300:4;637:9;3144:86;;;3048;637:9;3092:34;637:9;2300:4;637:9;3048:86;;;2952;637:9;2996:34;637:9;2300:4;637:9;2952:86;;;2856;637:9;2900:34;637:9;2300:4;637:9;2856:86;;;2760;637:9;2804:34;637:9;2300:4;637:9;2760:86;;;2665:85;637:9;2708:34;637:9;2300:4;637:9;2665:85;;;2570;637:9;2613:34;637:9;2300:4;637:9;2570:85;;;2475;637:9;2518:34;637:9;2300:4;637:9;2475:85;;;2380;637:9;2423:34;637:9;2300:4;637:9;2380:85;;;2286:84;637:9;2328:34;637:9;2300:4;637:9;2286:84;;;2192;637:9;2234:34;637:9;2273:3;637:9;2192:84;;;2098;637:9;2140:34;637:9;2179:3;637:9;2098:84;;;2004;637:9;2046:34;637:9;2085:3;637:9;2004:84;;;1911:83;637:9;1952:34;637:9;1991:3;637:9;1911:83;;;1818;637:9;1859:34;637:9;1898:3;637:9;1818:83;;;1725;637:9;1766:34;637:9;1805:3;637:9;1725:83;;;1622:93;637:9;1680:35;1622:93;;637:9;;1222:185:63;;637:9:41;;;1222:185:63;2192:25:64;637:9:41;;;2168:1:64;1222:185:63;637:9:41;;1222:185:63;637:9:41;1222:185:63;;;637:9:41;;1478:57;;;;2454:65:64;1222:185:63;;;;;;;2454:65:64;;1222:185:63;;;;;2192:25:64;1222:185:63;;;;2458:33:64;1222:185:63;;;2472:18:64;;;-1:-1:-1;2458:33:64;;;;2192:25;;;;;;;;;;;;:::i;:::-;;;1222:185:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2192:25:64;;;;;;;1222:185:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1222:185:63;;;;;;;;;2168:1:64;1222:185:63;;;497:363:65;;;;;1222:185:63;497:363:65;692:43;;1222:185:63;-1:-1:-1;1222:185:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;931:15:51;927:56;;;;497:363:65;1222:185:63;;;;;;;;;;;:::i;:::-;;;;;;;1000:51:51;;1222:185:63;1000:51:51;;1222:185:63;;1000:51:51;;;;1222:185:63;1421:23:51;;;1222:185:63;;;;;;;1665:43:51;1222:185:63;1665:43:51;;1222:185:63;;;;;;;;;;;;1665:43:51;;;;;;:::i;:::-;1222:185:63;1655:54:51;;1222:185:63;;1547:229:51;241:66;1222:185:63;1547:229:51;;241:66;;;;1222:185:63;241:66:51;;;;;;;;;1222:185:63;241:66:51;;;;1222:185:63;241:66:51;1547:229;;;;;;:::i;:::-;1222:185:63;1516:278:51;;1222:185:63;827:26:65;497:363;:::o;927:56:51:-;948:35;-1:-1:-1;948:35:51;-1:-1:-1;927:56:51;;;;954:270:66;;1063:154;;;1222:185:63;;;;;;;;1086:66:66;1222:185:63;1102:13:66;1222:185:63;;1086:66:66;:::i;1063:154::-;1222:185:63;1167:50:66;1222:185:63;;1167:50:66;1222:185:63;946:14:40;1420:150;;;;;;;;;;;;;;;;;;;1642:10;;1638:179;;1930:19;1211:5:66;1930:19:40;1222:185:63;;;2254:71:40;;1211:5:66;2254:71:40;;2389:117;;;;;;637:9:41;;2389:117:40;;2903:58;;3221:21;834:3804;:::o;1638:179::-;1222:185:63;;;;1706:74:40;;1793:13;:::o;834:3804::-;1420:150;1132:5:66;1420:150:40;;;;;;;;;;;;;;;;;1642:10;;1638:179;;1930:19;;;1222:185:63;;;1132:5:66;2254:71:40;;;1222:185:63;;;;2670:43:40;2769:70;;;3610:1;637:9:41;3591:1:40;637:9:41;3590:21:40;637:9:41;;;3610:1:40;1222:185:63;637:9:41;;;;3610:1:40;1222:185:63;637:9:41;;;;3610:1:40;1222:185:63;637:9:41;;;;3610:1:40;1222:185:63;637:9:41;;;;3610:1:40;1222:185:63;637:9:41;;;;3610:1:40;1222:185:63;637:9:41;3140:72:40;;;;1222:185:63;3140:72:40;;;2389:117;;;;;;637:9:41;2389:117:40;;2903:58;3221:21;637:9:41;834:3804:40;:::o;1638:179::-;1676:15;;;;;1222:185:63;;1706:74:40;1793:13;:::o;1873:307:52:-;-1:-1:-1;1873:307:52;;;;1222:185:63;;;;2032:58:52;;;;2055:23;2032:58;;1222:185:63;2032:58:52;;;1222:185:63;;;;;;;2032:58:52;;;;;;:::i;:::-;2021:70;;;;1222:185:63;;;;;;;;;;;;;;2032:58:52;;1222:185:63;;;;;;;:::i;:::-;;;;-1:-1:-1;2032:58:52;1222:185:63;;;;2109:57:52;;;1222:185:63;;;;;1873:307:52:o;1222:185:63:-;2032:58:52;1222:185:63;;;;;2032:58:52;1222:185:63;;;;;2032:58:52;1222:185:63;;;;;;;;;2109:57:52;1222:185:63;;2121:16:52;;;-1:-1:-1;2121:44:52;;;;2109:57;;;;;;2121:44;2141:24;;;;2032:58;2141:24;;;1222:185:63;;;;2032:58:52;1222:185:63;2141:24:52;;1222:185:63;:::i;:::-;2121:44:52;;;;1222:185:63;;;;1873:307:52;-1:-1:-1;1873:307:52;;;;;1222:185:63;;2032:58:52;1222:185:63;2032:58:52;;;;2055:23;2032:58;;1222:185:63;2032:58:52;;;1222:185:63;;;;;;2032:58:52;;;;;;:::i;231:365:66:-;399:6;;;407:8;1222:185:63;407:8:66;:::o;395:55::-;434:6;439:1;434:6;;;430:20;;474:1;1222:185:63;;;;;;;474:1:66;1222:185:63;490:5:66;512;;;;;;231:365;;:::o;505:85::-;541:5;;-1:-1:-1;541:5:66;1222:185:63;;;;;;;;;565:9:66;1222:185:63;;;;;;;474:1:66;1222:185:63;505:85:66;;;1222:185:63;;;;;;;;;;430:20:66;449:1;;-1:-1:-1;442:8:66:o","linkReferences":{},"immutableReferences":{"50186":[{"start":1350,"length":32},{"start":2139,"length":32}],"50189":[{"start":3559,"length":32},{"start":4185,"length":32}],"50191":[{"start":4129,"length":32}]}},"methodIdentifiers":{"protectedPrice(uint8,address,address,uint24)":"77aa2cd1","rawPrice(uint8,address,address,uint24)":"4f78bfff","swap(uint8,(address,address,address,uint256,uint256,bool,uint256,uint24))":"90b54f08"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"protectedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"rawPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"limitPriceX96\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"internalType\":\"struct IRouter.SwapParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Router.sol\":\"ArbitrumRouter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"protectedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"rawPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"struct IRouter.SwapParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"uint256","name":"limitPriceX96","type":"uint256"},{"internalType":"uint24","name":"maxFee","type":"uint24"}]}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/Router.sol":"ArbitrumRouter"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null}},"version":1},"id":63} \ No newline at end of file diff --git a/deployment/arb1/out/Router.sol/ArbitrumSepoliaRouter.json b/deployment/arb1/out/Router.sol/ArbitrumSepoliaRouter.json deleted file mode 100644 index 1eb9fa4..0000000 --- a/deployment/arb1/out/Router.sol/ArbitrumSepoliaRouter.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"protectedPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"rawPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"params","type":"tuple","internalType":"struct IRouter.SwapParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"limitPriceX96","type":"uint256","internalType":"uint256"},{"name":"maxFee","type":"uint24","internalType":"uint24"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0806040523460735773248ab79bbb9bc29bb72f7cd42f17e054fc40188e60a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220dff62d2005a2c2e68bfff008ac7803f2468460e6f25850a9956e4b609bf6886f64736f6c634300081a0033","sourceMap":"1410:206:63:-:0;;;;;;;1466:42:65;1214:18:64;;1568:42:65;1242:24:64;;1578:2:63;1276:30:64;;1410:206:63;;;;;;1242:24:64;1410:206:63;;;;;;;;;;1214:18:64;1410:206:63;;;;;;;;;;1276:30:64;1410:206:63;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220dff62d2005a2c2e68bfff008ac7803f2468460e6f25850a9956e4b609bf6886f64736f6c634300081a0033","sourceMap":"1410:206:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1410:206:63;;;;;-1:-1:-1;1410:206:63;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;441:259::-;;;;;1410:206;;;;;;590:18;578:30;574:97;;1410:206;;681:12;;;1410:206;681:12;;;1410:206;;;;;;;;;;;;;681:12;574:97;629:42;;;:::i;:::-;622:49;:::o;1410:206::-;;;;;;;;;;706:271;;;;;1410:206;;;;;;861:18;849:30;845:103;;1410:206;;958:12;;;1410:206;958:12;;;1410:206;;;;;;;;;;;;;681:12;845:103;900:48;;;:::i;983:233::-;;;;1410:206;;;;;;1129:18;1117:30;1113:74;;1410:206;;1197:12;;;1410:206;1197:12;;;1410:206;;;;;;;;;;;;;681:12;1113:74;-1:-1:-1;1168:19:63;3128:20:64;;;1410:206:63;;;3128:25:64;;;;3124:450;;1113:74:63;-1:-1:-1;;3587:20:64;;;1410:206:63;;3587:20:64;;3645:29;4731:13;;;1410:206:63;;4772:47:64;1410:206:63;;;;;;;4772:47:64;;;;1410:206:63;4772:47:64;;4813:4;4772:47;;;1410:206:63;4772:47:64;;;;;;;-1:-1:-1;4772:47:64;;;3583:172;4912:12;;;:42;;;;3583:172;4908:111;;5033:18;;;5029:55;;3583:172;1410:206:63;;5391:44:64;1410:206:63;;;;5146:10:64;5159:8;5146:10;;;1410:206:63;5159:8:64;;;:::i;:::-;1410:206:63;4731:13:64;1410:206:63;5391:44:64;:::i;:::-;1410:206:63;;;;;;5710:15:64;1410:206:63;;5710:15:64;;1410:206:63;;;;5732:13:64;;1410:206:63;;;;5758:16:64;;1410:206:63;;;;;;;;;:::i;:::-;;;;5626:277:64;;1410:206:63;;;;5626:277:64;;;1410:206:63;;;4731:13:64;5626:277;;1410:206:63;;;5798:15:64;5626:277;;;1410:206:63;;;3587:20:64;5626:277;;1410:206:63;;;1129:18;3128:20:64;5626:277;;1410:206:63;;;;5626:277:64;;1410:206:63;;;;;;5598:306:64;;1410:206:63;;;;;;4772:47:64;5598:306;;1410:206:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:306:64;;;-1:-1:-1;5598:306:64;;;;;;;;-1:-1:-1;5598:306:64;;;3583:172;1410:206:63;;5986:66:64;1410:206:63;;;;5986:66:64;:::i;5598:306::-;;;1410:206:63;5598:306:64;;1410:206:63;5598:306:64;;;;;;1410:206:63;5598:306:64;;;:::i;:::-;;;1410:206:63;;;;;;;;5598:306:64;;;;;-1:-1:-1;5598:306:64;;;1410:206:63;;;-1:-1:-1;1410:206:63;;;;;5029:55:64;5066:18;-1:-1:-1;5029:55:64;;;4908:111;1410:206:63;;5006:13:64;;;1410:206:63;4772:47:64;5006:13;;1410:206:63;;;;;;;;;;;;;681:12;4912:42:64;4938:16;;;;1410:206:63;4928:26:64;;4912:42;;4772:47;;1410:206:63;4772:47:64;;1410:206:63;4772:47:64;;;;;;1410:206:63;4772:47:64;;;:::i;:::-;;;1410:206:63;;;;;;4772:47:64;;;1410:206:63;;;4772:47:64;;;-1:-1:-1;4772:47:64;;3583:172;3725:30;;6198:16;6216:17;;6630:47;1410:206:63;;;;;;;6630:47:64;;;;1410:206:63;6630:47:64;;6671:4;6630:47;;;1410:206:63;6630:47:64;;;;;;;;;;;3583:172;6691:12;;;6687:44;;1410:206:63;7383:44:64;1410:206:63;;;;7311:10:64;7324:11;7311:10;;;1410:206:63;7324:11:64;;;:::i;7383:44::-;1410:206:63;;;;;;7696:15:64;1410:206:63;7696:15:64;;1410:206:63;;;;;7718:13:64;1410:206:63;7718:13:64;;1410:206:63;;;;7582:335:64;1410:206:63;;;;7744:16:64;1410:206:63;7744:16:64;;1410:206:63;;7424:2:64;1410:206:63;;;;7812:13:64;;1410:206:63;;;;;;;;;;:::i;:::-;;;7611:305:64;;;1410:206:63;;7611:305:64;;1410:206:63;7424:2:64;7611:305;;1410:206:63;7784:15:64;7611:305;;;1410:206:63;3587:20:64;7611:305;;1410:206:63;7611:305:64;3128:20;7611:305;;1410:206:63;7611:305:64;1410:206:63;7611:305:64;;1410:206:63;;;;7582:335:64;;;;;1410:206:63;7582:335:64;;6630:47;7582:335;;1410:206:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7582:335:64;;;;;;;3583:172;-1:-1:-1;7578:1236:64;;;;1129:18:63;7578:1236:64;;;:::i;:::-;;;;;;;;;;;;;;;1410:206:63;9193:66:64;7578:1236;;1410:206:63;;9193:66:64;:::i;7578:1236::-;1410:206:63;;;;;;;;;;7578:1236:64;8031:783;;:::i;:::-;;;;;7578:1236;;;;8031:783;;;;;;;;;;;;;;;1410:206:63;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8272:292:64;;1410:206:63;;;;8272:292:64;;;1410:206:63;;;7424:2:64;8272:292;;1410:206:63;;;7784:15:64;7611:305;8272:292;;1410:206:63;;;3587:20:64;8272:292;;1410:206:63;;;1129:18;3128:20:64;8272:292;;1410:206:63;;;;8272:292:64;;1410:206:63;;;;;;8244:321:64;;1410:206:63;;;;;;6630:47:64;8244:321;;1410:206:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8244:321:64;7582:335;8244:321;;;;;;;;;;8031:783;-1:-1:-1;8240:564:64;;;;;;:::i;:::-;7578:1236;8240:564;;;;1410:206:63;;;;;;;;;;;8240:564:64;8695:109;;:::i;:::-;;8240:564;8695:109;1410:206:63;;8742:14:64;;;;;1410:206:63;6630:47:64;8742:14;;1410:206:63;;;;;6630:47:64;1410:206:63;;;;;;;;;;;;;;;;;;;;;;;;;;;8742:14:64;;;;1410:206:63;;;;;;;;;;;;;;;;-1:-1:-1;1410:206:63;;;8240:564:64;8609:22;;;-1:-1:-1;8609:22:64;;;;8031:783;;;;;;;;8244:321;;;;1410:206:63;8244:321:64;;1410:206:63;8244:321:64;;;;;;1410:206:63;8244:321:64;;;:::i;:::-;;;1410:206:63;;;;;8244:321:64;;;;1410:206:63;;;;8244:321:64;;;-1:-1:-1;8244:321:64;;7578:1236;7956:16;;;;;;;;9193:66;7956:16;;;;1410:206:63;7956:16:64;;1410:206:63;;7578:1236:64;;;7582:335;;;;1410:206:63;7582:335:64;;1410:206:63;7582:335:64;;;;;;1410:206:63;7582:335:64;;;:::i;:::-;;;1410:206:63;;;;;7582:335:64;;;;;;;-1:-1:-1;7582:335:64;;6630:47;;;1410:206:63;6630:47:64;;1410:206:63;6630:47:64;;;;;;1410:206:63;6630:47:64;;;:::i;:::-;;;1410:206:63;;;;;6630:47:64;;;1410:206:63;;;;6630:47:64;;;-1:-1:-1;6630:47:64;;;1410:206:63;;;;;;;;;3124:450:64;1410:206:63;;;;;3203:15:64;;;1410:206:63;;-1:-1:-1;3232:228:64;3124:450;3232:228;1410:206:63;;3409:13:64;1410:206:63;;;3232:228:64;;3124:450;;1410:206:63;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1319:336:64:-;1410:206:63;1319:336:64;;1410:206:63;1319:336:64;1485:53;1319:336;1503:7;1485:53;:::i;:::-;1410:206:63;;1579:12:64;1410:206:63;;1579:12:64;;;;1410:206:63;1579:12:64;;1410:206:63;1579:12:64;;;;;;-1:-1:-1;1579:12:64;;;1319:336;1608:40;;;;;:::i;1579:12::-;1410:206:63;1579:12:64;;1410:206:63;1579:12:64;;;;;;1410:206:63;1579:12:64;;;:::i;:::-;;;1410:206:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;1608:40:64;1410:206:63;;;;:::i;:::-;;1579:12:64;;;;;;;;-1:-1:-1;1579:12:64;;1410:206:63;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;2168:1:64;1410:206:63;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1410:206:63;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;1706:1288:64:-;;;1410:206:63;1916:13:64;1410:206:63;1916:16:64;1912:1017;;1706:1288;2945:42;;;;:::i;1912:1017::-;1986:53;2004:7;;;;1986:53;:::i;:::-;1410:206:63;;;;;;;;;:::i;:::-;2096:1:64;1410:206:63;;;;;;;;;;2112:30:64;;;;:::i;:::-;1410:206:63;;2156:18:64;;;:::i;:::-;1410:206:63;;;2192:25:64;;;1410:206:63;2192:25:64;;1410:206:63;;;2192:25:64;1410:206:63;2192:25:64;;;1410:206:63;;;;;;;;;;;;;;;;;2192:25:64;;;;;1410:206:63;2192:25:64;1410:206:63;2192:25:64;;1410:206:63;;2192:25:64;;1410:206:63;;2192:25:64;;;1410:206:63;-1:-1:-1;2188:731:64;;;;;2168:1;2188:731;;:::i;:::-;;;;;;;;2945:42;1912:1017;;2188:731;2760:159;;:::i;:::-;;2188:731;2760:159;;1410:206:63;2188:731:64;;;2304:13;;-1:-1:-1;2304:13:64;-1:-1:-1;2304:13:64;-1:-1:-1;2320:13:64;2304;;;:::i;:::-;1410:206:63;;;2320:13:64;;:::i;:::-;1410:206:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2096:1:64;1410:206:63;2458:9:64;1410:206:63;2458:9:64;;:33;;;;2188:731;2454:65;;;;2188:731;2096:1;1410:206:63;;;1478:8:41;;1410:206:63;;;;;;1478:57:41;;477:7;1553:36;;637:9;;2168:1:64;1622:13:41;;:18;2168:1:64;;637:9:41;1643:34;1622:93;637:9;1729:13;2096:1:64;1729:13:41;;1725:83;;1622:93;2192:25:64;1822:13:41;;1818:83;;1622:93;1925:3;1915:13;;1911:83;;1622:93;2018:4;2008:14;;2004:84;;1622:93;1410:206:63;2102:14:41;;2098:84;;1622:93;1410:206:63;2196:14:41;;2192:84;;1622:93;2300:4;2290:14;;2286:84;;1622:93;2394:5;2384:15;;2380:85;;1622:93;2489:5;2479:15;;2475:85;;1622:93;2584:5;2574:15;;2570:85;;1622:93;2679:5;2669:15;;2665:85;;1622:93;2774:6;2764:16;;2760:86;;1622:93;2870:6;2860:16;;2856:86;;1622:93;2966:6;2956:16;;2952:86;;1622:93;3062:6;3052:16;;3048:86;;1622:93;3158:7;3148:17;;3144:86;;1622:93;3254:7;3244:17;;3240:85;;1622:93;3349:7;3339:17;;3335:83;;1622:93;3442:7;3432:17;3428:78;;1622:93;1410:206:63;-1:-1:-1;3517:47:41;;1622:93;1410:206:63;2692:40:64;3914:30:41;1410:206:63;637:9:41;;3914:22;:30;1410:206:63;;;;;3914:30:41;1410:206:63;637:9:41;1410:206:63;637:9:41;;1410:206:63;2692:40:64;:::i;3914:30:41:-;1410:206:63;2168:1:64;3914:30:41;;3517:47;1410:206:63;;;;;;;;;;3517:47:41;;1410:206:63;;;;;2192:25:64;1410:206:63;;;;3428:78:41;3473:25;637:9;;;2300:4;637:9;;3428:78;;3335:83;3380:30;637:9;;;2300:4;637:9;;3335:83;;3240:85;637:9;3285:32;637:9;2300:4;637:9;3240:85;;;3144:86;637:9;3189:33;637:9;2300:4;637:9;3144:86;;;3048;637:9;3092:34;637:9;2300:4;637:9;3048:86;;;2952;637:9;2996:34;637:9;2300:4;637:9;2952:86;;;2856;637:9;2900:34;637:9;2300:4;637:9;2856:86;;;2760;637:9;2804:34;637:9;2300:4;637:9;2760:86;;;2665:85;637:9;2708:34;637:9;2300:4;637:9;2665:85;;;2570;637:9;2613:34;637:9;2300:4;637:9;2570:85;;;2475;637:9;2518:34;637:9;2300:4;637:9;2475:85;;;2380;637:9;2423:34;637:9;2300:4;637:9;2380:85;;;2286:84;637:9;2328:34;637:9;2300:4;637:9;2286:84;;;2192;637:9;2234:34;637:9;2273:3;637:9;2192:84;;;2098;637:9;2140:34;637:9;2179:3;637:9;2098:84;;;2004;637:9;2046:34;637:9;2085:3;637:9;2004:84;;;1911:83;637:9;1952:34;637:9;1991:3;637:9;1911:83;;;1818;637:9;1859:34;637:9;1898:3;637:9;1818:83;;;1725;637:9;1766:34;637:9;1805:3;637:9;1725:83;;;1622:93;637:9;1680:35;1622:93;;637:9;;1410:206:63;;637:9:41;;;1410:206:63;2192:25:64;637:9:41;;;2168:1:64;1410:206:63;637:9:41;;1410:206:63;637:9:41;1410:206:63;;;637:9:41;;1478:57;;;;2454:65:64;1410:206:63;;;;;;;2454:65:64;;1410:206:63;;;;;2192:25:64;1410:206:63;;;;2458:33:64;1410:206:63;;;2472:18:64;;;-1:-1:-1;2458:33:64;;;;2192:25;;;;;;;;;;;;:::i;:::-;;;1410:206:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2192:25:64;;;;;;;1410:206:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1410:206:63;;;;;;;;;2168:1:64;1410:206:63;;;497:363:65;;;;;1410:206:63;497:363:65;692:43;;1410:206:63;-1:-1:-1;1410:206:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;931:15:51;927:56;;;;497:363:65;1410:206:63;;;;;;;;;;;:::i;:::-;;;;;;;1000:51:51;;1410:206:63;1000:51:51;;1410:206:63;;1000:51:51;;;;1410:206:63;1421:23:51;;;1410:206:63;;;;;;;1665:43:51;1410:206:63;1665:43:51;;1410:206:63;;;;;;;;;;;;1665:43:51;;;;;;:::i;:::-;1410:206:63;1655:54:51;;1410:206:63;;1547:229:51;241:66;1410:206:63;1547:229:51;;241:66;;;;1410:206:63;241:66:51;;;;;;;;;1410:206:63;241:66:51;;;;1410:206:63;241:66:51;1547:229;;;;;;:::i;:::-;1410:206:63;1516:278:51;;1410:206:63;827:26:65;497:363;:::o;927:56:51:-;948:35;-1:-1:-1;948:35:51;-1:-1:-1;927:56:51;;;;954:270:66;;1063:154;;;1410:206:63;;;;;;;;1086:66:66;1410:206:63;1102:13:66;1410:206:63;;1086:66:66;:::i;1063:154::-;1410:206:63;1167:50:66;1410:206:63;;1167:50:66;1410:206:63;946:14:40;1420:150;;;;;;;;;;;;;;;;;;;1642:10;;1638:179;;1930:19;1211:5:66;1930:19:40;1410:206:63;;;2254:71:40;;1211:5:66;2254:71:40;;2389:117;;;;;;637:9:41;;2389:117:40;;2903:58;;3221:21;834:3804;:::o;1638:179::-;1410:206:63;;;;1706:74:40;;1793:13;:::o;834:3804::-;1420:150;1132:5:66;1420:150:40;;;;;;;;;;;;;;;;;1642:10;;1638:179;;1930:19;;;1410:206:63;;;1132:5:66;2254:71:40;;;1410:206:63;;;;2670:43:40;2769:70;;;3610:1;637:9:41;3591:1:40;637:9:41;3590:21:40;637:9:41;;;3610:1:40;1410:206:63;637:9:41;;;;3610:1:40;1410:206:63;637:9:41;;;;3610:1:40;1410:206:63;637:9:41;;;;3610:1:40;1410:206:63;637:9:41;;;;3610:1:40;1410:206:63;637:9:41;;;;3610:1:40;1410:206:63;637:9:41;3140:72:40;;;;1410:206:63;3140:72:40;;;2389:117;;;;;;637:9:41;2389:117:40;;2903:58;3221:21;637:9:41;834:3804:40;:::o;1638:179::-;1676:15;;;;;1410:206:63;;1706:74:40;1793:13;:::o;1873:307:52:-;-1:-1:-1;1873:307:52;;;;1410:206:63;;;;2032:58:52;;;;2055:23;2032:58;;1410:206:63;2032:58:52;;;1410:206:63;;;;;;;2032:58:52;;;;;;:::i;:::-;2021:70;;;;1410:206:63;;;;;;;;;;;;;;2032:58:52;;1410:206:63;;;;;;;:::i;:::-;;;;-1:-1:-1;2032:58:52;1410:206:63;;;;2109:57:52;;;1410:206:63;;;;;1873:307:52:o;1410:206:63:-;2032:58:52;1410:206:63;;;;;2032:58:52;1410:206:63;;;;;2032:58:52;1410:206:63;;;;;;;;;2109:57:52;1410:206:63;;2121:16:52;;;-1:-1:-1;2121:44:52;;;;2109:57;;;;;;2121:44;2141:24;;;;2032:58;2141:24;;;1410:206:63;;;;2032:58:52;1410:206:63;2141:24:52;;1410:206:63;:::i;:::-;2121:44:52;;;;1410:206:63;;;;1873:307:52;-1:-1:-1;1873:307:52;;;;;1410:206:63;;2032:58:52;1410:206:63;2032:58:52;;;;2055:23;2032:58;;1410:206:63;2032:58:52;;;1410:206:63;;;;;;2032:58:52;;;;;;:::i;231:365:66:-;399:6;;;407:8;1410:206:63;407:8:66;:::o;395:55::-;434:6;439:1;434:6;;;430:20;;474:1;1410:206:63;;;;;;;474:1:66;1410:206:63;490:5:66;512;;;;;;231:365;;:::o;505:85::-;541:5;;-1:-1:-1;541:5:66;1410:206:63;;;;;;;;;565:9:66;1410:206:63;;;;;;;474:1:66;1410:206:63;505:85:66;;;1410:206:63;;;;;;;;;;430:20:66;449:1;;-1:-1:-1;442:8:66:o","linkReferences":{},"immutableReferences":{"50186":[{"start":1350,"length":32},{"start":2139,"length":32}],"50189":[{"start":3559,"length":32},{"start":4185,"length":32}],"50191":[{"start":4129,"length":32}]}},"methodIdentifiers":{"protectedPrice(uint8,address,address,uint24)":"77aa2cd1","rawPrice(uint8,address,address,uint24)":"4f78bfff","swap(uint8,(address,address,address,uint256,uint256,bool,uint256,uint24))":"90b54f08"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"protectedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"rawPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"limitPriceX96\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"internalType\":\"struct IRouter.SwapParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Router.sol\":\"ArbitrumSepoliaRouter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"protectedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"rawPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"struct IRouter.SwapParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"uint256","name":"limitPriceX96","type":"uint256"},{"internalType":"uint24","name":"maxFee","type":"uint24"}]}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/Router.sol":"ArbitrumSepoliaRouter"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null}},"version":1},"id":63} \ No newline at end of file diff --git a/deployment/arb1/out/Router.sol/Router.json b/deployment/arb1/out/Router.sol/Router.json deleted file mode 100644 index bba5f7d..0000000 --- a/deployment/arb1/out/Router.sol/Router.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"uniswapV3Factory","type":"address","internalType":"contract IUniswapV3Factory"},{"name":"uniswapV3SwapRouter","type":"address","internalType":"contract ISwapRouter"},{"name":"uniswapV3OracleSeconds","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"protectedPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"rawPrice","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"maxFee","type":"uint24","internalType":"uint24"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"params","type":"tuple","internalType":"struct IRouter.SwapParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"limitPriceX96","type":"uint256","internalType":"uint256"},{"name":"maxFee","type":"uint24","internalType":"uint24"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100ba57601f611ed738819003918201601f19168301916001600160401b038311848410176100bf578084926060946040528339810103126100ba578051906001600160a01b03821682036100ba576020810151906001600160a01b03821682036100ba57604001519163ffffffff831683036100ba5760a05260805260c052604051611e0190816100d68239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea26469706673582212209b9f89c9b7013475f0893c018df498eb4e2aa523280178afd6b84b567ae489f264736f6c634300081a0033","sourceMap":"160:1059:63:-:0;;;;;;;;;;;;;-1:-1:-1;;160:1059:63;;;;-1:-1:-1;;;;;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;160:1059:63;;;;;;;;;;;-1:-1:-1;;;;;160:1059:63;;;;;;;;;;;;;;;;;1214:18:64;;1242:24;;1276:30;;160:1059:63;;;;;;;;1242:24:64;160:1059:63;;;;;;;;;;1214:18:64;160:1059:63;;;;;;;;;;1276:30:64;160:1059:63;;;;;;;-1:-1:-1;160:1059:63;;;;;;-1:-1:-1;160:1059:63;;;;;-1:-1:-1;160:1059:63","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea26469706673582212209b9f89c9b7013475f0893c018df498eb4e2aa523280178afd6b84b567ae489f264736f6c634300081a0033","sourceMap":"160:1059:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;160:1059:63;;;;;-1:-1:-1;160:1059:63;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;441:259::-;;;;;160:1059;;;;;;590:18;578:30;574:97;;160:1059;;681:12;;;160:1059;681:12;;;160:1059;;;;;;;;;;;;;681:12;574:97;629:42;;;:::i;:::-;622:49;:::o;160:1059::-;;;;;;;;;;706:271;;;;;160:1059;;;;;;861:18;849:30;845:103;;160:1059;;958:12;;;160:1059;958:12;;;160:1059;;;;;;;;;;;;;681:12;845:103;900:48;;;:::i;983:233::-;;;;160:1059;;;;;;1129:18;1117:30;1113:74;;160:1059;;1197:12;;;160:1059;1197:12;;;160:1059;;;;;;;;;;;;;681:12;1113:74;-1:-1:-1;1168:19:63;3128:20:64;;;160:1059:63;;;3128:25:64;;;;3124:450;;1113:74:63;-1:-1:-1;;3587:20:64;;;160:1059:63;;3587:20:64;;3645:29;4731:13;;;160:1059:63;;4772:47:64;160:1059:63;;;;;;;4772:47:64;;;;160:1059:63;4772:47:64;;4813:4;4772:47;;;160:1059:63;4772:47:64;;;;;;;-1:-1:-1;4772:47:64;;;3583:172;4912:12;;;:42;;;;3583:172;4908:111;;5033:18;;;5029:55;;3583:172;160:1059:63;;5391:44:64;160:1059:63;;;;5146:10:64;5159:8;5146:10;;;160:1059:63;5159:8:64;;;:::i;:::-;160:1059:63;4731:13:64;160:1059:63;5391:44:64;:::i;:::-;160:1059:63;;;;;;5710:15:64;160:1059:63;;5710:15:64;;160:1059:63;;;;5732:13:64;;160:1059:63;;;;5758:16:64;;160:1059:63;;;;;;;;;:::i;:::-;;;;5626:277:64;;160:1059:63;;;;5626:277:64;;;160:1059:63;;;4731:13:64;5626:277;;160:1059:63;;;5798:15:64;5626:277;;;160:1059:63;;;3587:20:64;5626:277;;160:1059:63;;;1129:18;3128:20:64;5626:277;;160:1059:63;;;;5626:277:64;;160:1059:63;;;;;;5598:306:64;;160:1059:63;;;;;;4772:47:64;5598:306;;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5598:306:64;;;-1:-1:-1;5598:306:64;;;;;;;;-1:-1:-1;5598:306:64;;;3583:172;160:1059:63;;5986:66:64;160:1059:63;;;;5986:66:64;:::i;5598:306::-;;;160:1059:63;5598:306:64;;160:1059:63;5598:306:64;;;;;;160:1059:63;5598:306:64;;;:::i;:::-;;;160:1059:63;;;;;;;;5598:306:64;;;;;-1:-1:-1;5598:306:64;;;160:1059:63;;;-1:-1:-1;160:1059:63;;;;;5029:55:64;5066:18;-1:-1:-1;5029:55:64;;;4908:111;160:1059:63;;5006:13:64;;;160:1059:63;4772:47:64;5006:13;;160:1059:63;;;;;;;;;;;;;681:12;4912:42:64;4938:16;;;;160:1059:63;4928:26:64;;4912:42;;4772:47;;160:1059:63;4772:47:64;;160:1059:63;4772:47:64;;;;;;160:1059:63;4772:47:64;;;:::i;:::-;;;160:1059:63;;;;;;4772:47:64;;;160:1059:63;;;4772:47:64;;;-1:-1:-1;4772:47:64;;3583:172;3725:30;;6198:16;6216:17;;6630:47;160:1059:63;;;;;;;6630:47:64;;;;160:1059:63;6630:47:64;;6671:4;6630:47;;;160:1059:63;6630:47:64;;;;;;;;;;;3583:172;6691:12;;;6687:44;;160:1059:63;7383:44:64;160:1059:63;;;;7311:10:64;7324:11;7311:10;;;160:1059:63;7324:11:64;;;:::i;7383:44::-;160:1059:63;;;;;;7696:15:64;160:1059:63;7696:15:64;;160:1059:63;;;;;7718:13:64;160:1059:63;7718:13:64;;160:1059:63;;;;7582:335:64;160:1059:63;;;;7744:16:64;160:1059:63;7744:16:64;;160:1059:63;;7424:2:64;160:1059:63;;;;7812:13:64;;160:1059:63;;;;;;;;;;:::i;:::-;;;7611:305:64;;;160:1059:63;;7611:305:64;;160:1059:63;7424:2:64;7611:305;;160:1059:63;7784:15:64;7611:305;;;160:1059:63;3587:20:64;7611:305;;160:1059:63;7611:305:64;3128:20;7611:305;;160:1059:63;7611:305:64;160:1059:63;7611:305:64;;160:1059:63;;;;7582:335:64;;;;;160:1059:63;7582:335:64;;6630:47;7582:335;;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7582:335:64;;;;;;;3583:172;-1:-1:-1;7578:1236:64;;;;1129:18:63;7578:1236:64;;;:::i;:::-;;;;;;;;;;;;;;;160:1059:63;9193:66:64;7578:1236;;160:1059:63;;9193:66:64;:::i;7578:1236::-;160:1059:63;;;;;;;;;;7578:1236:64;8031:783;;:::i;:::-;;;;;7578:1236;;;;8031:783;;;;;;;;;;;;;;;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8272:292:64;;160:1059:63;;;;8272:292:64;;;160:1059:63;;;7424:2:64;8272:292;;160:1059:63;;;7784:15:64;7611:305;8272:292;;160:1059:63;;;3587:20:64;8272:292;;160:1059:63;;;1129:18;3128:20:64;8272:292;;160:1059:63;;;;8272:292:64;;160:1059:63;;;;;;8244:321:64;;160:1059:63;;;;;;6630:47:64;8244:321;;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8244:321:64;7582:335;8244:321;;;;;;;;;;8031:783;-1:-1:-1;8240:564:64;;;;;;:::i;:::-;7578:1236;8240:564;;;;160:1059:63;;;;;;;;;;;8240:564:64;8695:109;;:::i;:::-;;8240:564;8695:109;160:1059:63;;8742:14:64;;;;;160:1059:63;6630:47:64;8742:14;;160:1059:63;;;;;6630:47:64;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;;;;8742:14:64;;;;160:1059:63;;;;;;;;;;;;;;;;-1:-1:-1;160:1059:63;;;8240:564:64;8609:22;;;-1:-1:-1;8609:22:64;;;;8031:783;;;;;;;;8244:321;;;;160:1059:63;8244:321:64;;160:1059:63;8244:321:64;;;;;;160:1059:63;8244:321:64;;;:::i;:::-;;;160:1059:63;;;;;8244:321:64;;;;160:1059:63;;;;8244:321:64;;;-1:-1:-1;8244:321:64;;7578:1236;7956:16;;;;;;;;9193:66;7956:16;;;;160:1059:63;7956:16:64;;160:1059:63;;7578:1236:64;;;7582:335;;;;160:1059:63;7582:335:64;;160:1059:63;7582:335:64;;;;;;160:1059:63;7582:335:64;;;:::i;:::-;;;160:1059:63;;;;;7582:335:64;;;;;;;-1:-1:-1;7582:335:64;;6630:47;;;160:1059:63;6630:47:64;;160:1059:63;6630:47:64;;;;;;160:1059:63;6630:47:64;;;:::i;:::-;;;160:1059:63;;;;;6630:47:64;;;160:1059:63;;;;6630:47:64;;;-1:-1:-1;6630:47:64;;;160:1059:63;;;;;;;;;3124:450:64;160:1059:63;;;;;3203:15:64;;;160:1059:63;;-1:-1:-1;3232:228:64;3124:450;3232:228;160:1059:63;;3409:13:64;160:1059:63;;;3232:228:64;;3124:450;;160:1059:63;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1319:336:64:-;160:1059:63;1319:336:64;;160:1059:63;1319:336:64;1485:53;1319:336;1503:7;1485:53;:::i;:::-;160:1059:63;;1579:12:64;160:1059:63;;1579:12:64;;;;160:1059:63;1579:12:64;;160:1059:63;1579:12:64;;;;;;-1:-1:-1;1579:12:64;;;1319:336;1608:40;;;;;:::i;1579:12::-;160:1059:63;1579:12:64;;160:1059:63;1579:12:64;;;;;;160:1059:63;1579:12:64;;;:::i;:::-;;;160:1059:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;1608:40:64;160:1059:63;;;;:::i;:::-;;1579:12:64;;;;;;;;-1:-1:-1;1579:12:64;;160:1059:63;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;2168:1:64;160:1059:63;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;160:1059:63;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::o;1706:1288:64:-;;;160:1059:63;1916:13:64;160:1059:63;1916:16:64;1912:1017;;1706:1288;2945:42;;;;:::i;1912:1017::-;1986:53;2004:7;;;;1986:53;:::i;:::-;160:1059:63;;;;;;;;;:::i;:::-;2096:1:64;160:1059:63;;;;;;;;;;2112:30:64;;;;:::i;:::-;160:1059:63;;2156:18:64;;;:::i;:::-;160:1059:63;;;2192:25:64;;;160:1059:63;2192:25:64;;160:1059:63;;;2192:25:64;160:1059:63;2192:25:64;;;160:1059:63;;;;;;;;;;;;;;;;;2192:25:64;;;;;160:1059:63;2192:25:64;160:1059:63;2192:25:64;;160:1059:63;;2192:25:64;;160:1059:63;;2192:25:64;;;160:1059:63;-1:-1:-1;2188:731:64;;;;;2168:1;2188:731;;:::i;:::-;;;;;;;;2945:42;1912:1017;;2188:731;2760:159;;:::i;:::-;;2188:731;2760:159;;160:1059:63;2188:731:64;;;2304:13;;-1:-1:-1;2304:13:64;-1:-1:-1;2304:13:64;-1:-1:-1;2320:13:64;2304;;;:::i;:::-;160:1059:63;;;2320:13:64;;:::i;:::-;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2096:1:64;160:1059:63;2458:9:64;160:1059:63;2458:9:64;;:33;;;;2188:731;2454:65;;;;2188:731;2096:1;160:1059:63;;;1478:8:41;;160:1059:63;;;;;;1478:57:41;;477:7;1553:36;;637:9;;2168:1:64;1622:13:41;;:18;2168:1:64;;637:9:41;1643:34;1622:93;637:9;1729:13;2096:1:64;1729:13:41;;1725:83;;1622:93;2192:25:64;1822:13:41;;1818:83;;1622:93;1925:3;1915:13;;1911:83;;1622:93;2018:4;2008:14;;2004:84;;1622:93;160:1059:63;2102:14:41;;2098:84;;1622:93;160:1059:63;2196:14:41;;2192:84;;1622:93;2300:4;2290:14;;2286:84;;1622:93;2394:5;2384:15;;2380:85;;1622:93;2489:5;2479:15;;2475:85;;1622:93;2584:5;2574:15;;2570:85;;1622:93;2679:5;2669:15;;2665:85;;1622:93;2774:6;2764:16;;2760:86;;1622:93;2870:6;2860:16;;2856:86;;1622:93;2966:6;2956:16;;2952:86;;1622:93;3062:6;3052:16;;3048:86;;1622:93;3158:7;3148:17;;3144:86;;1622:93;3254:7;3244:17;;3240:85;;1622:93;3349:7;3339:17;;3335:83;;1622:93;3442:7;3432:17;3428:78;;1622:93;160:1059:63;-1:-1:-1;3517:47:41;;1622:93;160:1059:63;2692:40:64;3914:30:41;160:1059:63;637:9:41;;3914:22;:30;160:1059:63;;;;;3914:30:41;160:1059:63;637:9:41;160:1059:63;637:9:41;;160:1059:63;2692:40:64;:::i;3914:30:41:-;160:1059:63;2168:1:64;3914:30:41;;3517:47;160:1059:63;;;;;;;;;;3517:47:41;;160:1059:63;;;;;2192:25:64;160:1059:63;;;;3428:78:41;3473:25;637:9;;;2300:4;637:9;;3428:78;;3335:83;3380:30;637:9;;;2300:4;637:9;;3335:83;;3240:85;637:9;3285:32;637:9;2300:4;637:9;3240:85;;;3144:86;637:9;3189:33;637:9;2300:4;637:9;3144:86;;;3048;637:9;3092:34;637:9;2300:4;637:9;3048:86;;;2952;637:9;2996:34;637:9;2300:4;637:9;2952:86;;;2856;637:9;2900:34;637:9;2300:4;637:9;2856:86;;;2760;637:9;2804:34;637:9;2300:4;637:9;2760:86;;;2665:85;637:9;2708:34;637:9;2300:4;637:9;2665:85;;;2570;637:9;2613:34;637:9;2300:4;637:9;2570:85;;;2475;637:9;2518:34;637:9;2300:4;637:9;2475:85;;;2380;637:9;2423:34;637:9;2300:4;637:9;2380:85;;;2286:84;637:9;2328:34;637:9;2300:4;637:9;2286:84;;;2192;637:9;2234:34;637:9;2273:3;637:9;2192:84;;;2098;637:9;2140:34;637:9;2179:3;637:9;2098:84;;;2004;637:9;2046:34;637:9;2085:3;637:9;2004:84;;;1911:83;637:9;1952:34;637:9;1991:3;637:9;1911:83;;;1818;637:9;1859:34;637:9;1898:3;637:9;1818:83;;;1725;637:9;1766:34;637:9;1805:3;637:9;1725:83;;;1622:93;637:9;1680:35;1622:93;;637:9;;160:1059:63;;637:9:41;;;160:1059:63;2192:25:64;637:9:41;;;2168:1:64;160:1059:63;637:9:41;;160:1059:63;637:9:41;160:1059:63;;;637:9:41;;1478:57;;;;2454:65:64;160:1059:63;;;;;;;2454:65:64;;160:1059:63;;;;;2192:25:64;160:1059:63;;;;2458:33:64;160:1059:63;;;2472:18:64;;;-1:-1:-1;2458:33:64;;;;2192:25;;;;;;;;;;;;:::i;:::-;;;160:1059:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2192:25:64;;;;;;;160:1059:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;160:1059:63;;;;;;;;;2168:1:64;160:1059:63;;;497:363:65;;;;;160:1059:63;497:363:65;692:43;;160:1059:63;-1:-1:-1;160:1059:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;931:15:51;927:56;;;;497:363:65;160:1059:63;;;;;;;;;;;:::i;:::-;;;;;;;1000:51:51;;160:1059:63;1000:51:51;;160:1059:63;;1000:51:51;;;;160:1059:63;1421:23:51;;;160:1059:63;;;;;;;1665:43:51;160:1059:63;1665:43:51;;160:1059:63;;;;;;;;;;;;1665:43:51;;;;;;:::i;:::-;160:1059:63;1655:54:51;;160:1059:63;;1547:229:51;241:66;160:1059:63;1547:229:51;;241:66;;;;160:1059:63;241:66:51;;;;;;;;;160:1059:63;241:66:51;;;;160:1059:63;241:66:51;1547:229;;;;;;:::i;:::-;160:1059:63;1516:278:51;;160:1059:63;827:26:65;497:363;:::o;927:56:51:-;948:35;-1:-1:-1;948:35:51;-1:-1:-1;927:56:51;;;;954:270:66;;1063:154;;;160:1059:63;;;;;;;;1086:66:66;160:1059:63;1102:13:66;160:1059:63;;1086:66:66;:::i;1063:154::-;160:1059:63;1167:50:66;160:1059:63;;1167:50:66;160:1059:63;946:14:40;1420:150;;;;;;;;;;;;;;;;;;;1642:10;;1638:179;;1930:19;1211:5:66;1930:19:40;160:1059:63;;;2254:71:40;;1211:5:66;2254:71:40;;2389:117;;;;;;637:9:41;;2389:117:40;;2903:58;;3221:21;834:3804;:::o;1638:179::-;160:1059:63;;;;1706:74:40;;1793:13;:::o;834:3804::-;1420:150;1132:5:66;1420:150:40;;;;;;;;;;;;;;;;;1642:10;;1638:179;;1930:19;;;160:1059:63;;;1132:5:66;2254:71:40;;;160:1059:63;;;;2670:43:40;2769:70;;;3610:1;637:9:41;3591:1:40;637:9:41;3590:21:40;637:9:41;;;3610:1:40;160:1059:63;637:9:41;;;;3610:1:40;160:1059:63;637:9:41;;;;3610:1:40;160:1059:63;637:9:41;;;;3610:1:40;160:1059:63;637:9:41;;;;3610:1:40;160:1059:63;637:9:41;;;;3610:1:40;160:1059:63;637:9:41;3140:72:40;;;;160:1059:63;3140:72:40;;;2389:117;;;;;;637:9:41;2389:117:40;;2903:58;3221:21;637:9:41;834:3804:40;:::o;1638:179::-;1676:15;;;;;160:1059:63;;1706:74:40;1793:13;:::o;1873:307:52:-;-1:-1:-1;1873:307:52;;;;160:1059:63;;;;2032:58:52;;;;2055:23;2032:58;;160:1059:63;2032:58:52;;;160:1059:63;;;;;;;2032:58:52;;;;;;:::i;:::-;2021:70;;;;160:1059:63;;;;;;;;;;;;;;2032:58:52;;160:1059:63;;;;;;;:::i;:::-;;;;-1:-1:-1;2032:58:52;160:1059:63;;;;2109:57:52;;;160:1059:63;;;;;1873:307:52:o;160:1059:63:-;2032:58:52;160:1059:63;;;;;2032:58:52;160:1059:63;;;;;2032:58:52;160:1059:63;;;;;;;;;2109:57:52;160:1059:63;;2121:16:52;;;-1:-1:-1;2121:44:52;;;;2109:57;;;;;;2121:44;2141:24;;;;2032:58;2141:24;;;160:1059:63;;;;2032:58:52;160:1059:63;2141:24:52;;160:1059:63;:::i;:::-;2121:44:52;;;;160:1059:63;;;;1873:307:52;-1:-1:-1;1873:307:52;;;;;160:1059:63;;2032:58:52;160:1059:63;2032:58:52;;;;2055:23;2032:58;;160:1059:63;2032:58:52;;;160:1059:63;;;;;;2032:58:52;;;;;;:::i;231:365:66:-;399:6;;;407:8;160:1059:63;407:8:66;:::o;395:55::-;434:6;439:1;434:6;;;430:20;;474:1;160:1059:63;;;;;;;474:1:66;160:1059:63;490:5:66;512;;;;;;231:365;;:::o;505:85::-;541:5;;-1:-1:-1;541:5:66;160:1059:63;;;;;;;;;565:9:66;160:1059:63;;;;;;;474:1:66;160:1059:63;505:85:66;;;160:1059:63;;;;;;;;;;430:20:66;449:1;;-1:-1:-1;442:8:66:o","linkReferences":{},"immutableReferences":{"50186":[{"start":1350,"length":32},{"start":2139,"length":32}],"50189":[{"start":3559,"length":32},{"start":4185,"length":32}],"50191":[{"start":4129,"length":32}]}},"methodIdentifiers":{"protectedPrice(uint8,address,address,uint24)":"77aa2cd1","rawPrice(uint8,address,address,uint24)":"4f78bfff","swap(uint8,(address,address,address,uint256,uint256,bool,uint256,uint24))":"90b54f08"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"uniswapV3Factory\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"uniswapV3SwapRouter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"uniswapV3OracleSeconds\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"protectedPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"name\":\"rawPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"limitPriceX96\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"maxFee\",\"type\":\"uint24\"}],\"internalType\":\"struct IRouter.SwapParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Router.sol\":\"Router\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IUniswapV3Factory","name":"uniswapV3Factory","type":"address"},{"internalType":"contract ISwapRouter","name":"uniswapV3SwapRouter","type":"address"},{"internalType":"uint32","name":"uniswapV3OracleSeconds","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"protectedPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"maxFee","type":"uint24"}],"stateMutability":"view","type":"function","name":"rawPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"struct IRouter.SwapParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"uint256","name":"limitPriceX96","type":"uint256"},{"internalType":"uint24","name":"maxFee","type":"uint24"}]}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/Router.sol":"Router"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null}},"version":1},"id":63} \ No newline at end of file diff --git a/deployment/arb1/out/Script.sol/Script.json b/deployment/arb1/out/Script.sol/Script.json deleted file mode 100644 index 9a085e7..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"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_forge_std/src/Script.sol\":\"Script\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/Script.sol":"Script"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":1} \ No newline at end of file diff --git a/deployment/arb1/out/StdChains.sol/StdChains.json b/deployment/arb1/out/StdChains.sol/StdChains.json deleted file mode 100644 index 8b3a3e1..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"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 `initializeStdChains` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or `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 `initializeStdChains`, 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 the RPC URL for `mainnet`: - If you have specified data with `setChain`, it will return that. - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it is valid (e.g. a URL is specified, or an environment variable is given and exists). - If neither of the above conditions is met, the default data is returned. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdChains.sol":"StdChains"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":2} \ No newline at end of file diff --git a/deployment/arb1/out/StdCheats.sol/StdCheats.json b/deployment/arb1/out/StdCheats.sol/StdCheats.json deleted file mode 100644 index b3597ff..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdCheats.sol":"StdCheats"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/deployment/arb1/out/StdCheats.sol/StdCheatsSafe.json b/deployment/arb1/out/StdCheats.sol/StdCheatsSafe.json deleted file mode 100644 index b0083f2..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":3} \ No newline at end of file diff --git a/deployment/arb1/out/StdJson.sol/stdJson.json b/deployment/arb1/out/StdJson.sol/stdJson.json deleted file mode 100644 index 6f8b8dd..0000000 --- a/deployment/arb1/out/StdJson.sol/stdJson.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220e982f00d901c6515f7b39b15f35d74b6f41358cccd3442a8e6d16980627146f364736f6c634300081a0033","sourceMap":"610:5612:4:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e982f00d901c6515f7b39b15f35d74b6f41358cccd3442a8e6d16980627146f364736f6c634300081a0033","sourceMap":"610:5612:4:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdJson.sol":"stdJson"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":4} \ No newline at end of file diff --git a/deployment/arb1/out/StdMath.sol/stdMath.json b/deployment/arb1/out/StdMath.sol/stdMath.json deleted file mode 100644 index 7525751..0000000 --- a/deployment/arb1/out/StdMath.sol/stdMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122041f5c1685ceb8661274f1764aa82896d61aff3ff2b8cec49b31f1775cf84e39564736f6c634300081a0033","sourceMap":"65:1294:5:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122041f5c1685ceb8661274f1764aa82896d61aff3ff2b8cec49b31f1775cf84e39564736f6c634300081a0033","sourceMap":"65:1294:5:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdMath.sol":"stdMath"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"id":5} \ No newline at end of file diff --git a/deployment/arb1/out/StdStorage.sol/stdStorage.json b/deployment/arb1/out/StdStorage.sol/stdStorage.json deleted file mode 100644 index bd70c48..0000000 --- a/deployment/arb1/out/StdStorage.sol/stdStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220554ed9bdb3c0d3fab594edd6e3df53be8174aaebb75e2a620cb22399891775fc64736f6c634300081a0033","sourceMap":"12760:5081:6:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220554ed9bdb3c0d3fab594edd6e3df53be8174aaebb75e2a620cb22399891775fc64736f6c634300081a0033","sourceMap":"12760:5081:6:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdStorage.sol":"stdStorage"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":6} \ No newline at end of file diff --git a/deployment/arb1/out/StdStorage.sol/stdStorageSafe.json b/deployment/arb1/out/StdStorage.sol/stdStorageSafe.json deleted file mode 100644 index ebb847a..0000000 --- a/deployment/arb1/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":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220df61fe34465c47769040dd885699563ab03f2bc9f1262e363e87d20977258d2564736f6c634300081a0033","sourceMap":"450:12308:6:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220df61fe34465c47769040dd885699563ab03f2bc9f1262e363e87d20977258d2564736f6c634300081a0033","sourceMap":"450:12308:6:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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_forge_std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":6} \ No newline at end of file diff --git a/deployment/arb1/out/StdStyle.sol/StdStyle.json b/deployment/arb1/out/StdStyle.sol/StdStyle.json deleted file mode 100644 index 8c5c95a..0000000 --- a/deployment/arb1/out/StdStyle.sol/StdStyle.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f58dacc2a7c454da7b1bac57decd4c39f770aee817c7dbea3e4520884a22995064736f6c634300081a0033","sourceMap":"100:10361:7:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220f58dacc2a7c454da7b1bac57decd4c39f770aee817c7dbea3e4520884a22995064736f6c634300081a0033","sourceMap":"100:10361:7:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdStyle.sol\":\"StdStyle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdStyle.sol":"StdStyle"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":7} \ No newline at end of file diff --git a/deployment/arb1/out/StdUtils.sol/StdUtils.json b/deployment/arb1/out/StdUtils.sol/StdUtils.json deleted file mode 100644 index 73174f2..0000000 --- a/deployment/arb1/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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/StdUtils.sol":"StdUtils"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"id":8} \ No newline at end of file diff --git a/deployment/arb1/out/TickMath.sol/TickMath.json b/deployment/arb1/out/TickMath.sol/TickMath.json deleted file mode 100644 index a751051..0000000 --- a/deployment/arb1/out/TickMath.sol/TickMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122030200d05ddd239e12f8d64a82c2b261d5461ac35e64ec44667b07c835828da4364736f6c634300081a0033","sourceMap":"306:8361:41:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122030200d05ddd239e12f8d64a82c2b261d5461ac35e64ec44667b07c835828da4364736f6c634300081a0033","sourceMap":"306:8361:41:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"MAX_SQRT_RATIO\":{\"details\":\"The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)\"},\"MAX_TICK\":{\"details\":\"The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128\"},\"MIN_SQRT_RATIO\":{\"details\":\"The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)\"},\"MIN_TICK\":{\"details\":\"The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128\"}},\"title\":\"Math library for computing sqrt prices from ticks and vice versa\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports prices between 2**-128 and 2**128\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":\"TickMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":"TickMath"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"}},"version":1},"id":41} \ No newline at end of file diff --git a/deployment/arb1/out/TransferHelper.sol/TransferHelper.json b/deployment/arb1/out/TransferHelper.sol/TransferHelper.json deleted file mode 100644 index 47258d6..0000000 --- a/deployment/arb1/out/TransferHelper.sol/TransferHelper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212206c6410c9b05de12c560fa4adc7e81820b18855270c0c1e22de33b76c2e3f693564736f6c634300081a0033","sourceMap":"129:2408:52:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212206c6410c9b05de12c560fa4adc7e81820b18855270c0c1e22de33b76c2e3f693564736f6c634300081a0033","sourceMap":"129:2408:52:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":"TransferHelper"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"}},"version":1},"id":52} \ No newline at end of file diff --git a/deployment/arb1/out/UniswapSwapper.sol/UniswapV3Swapper.json b/deployment/arb1/out/UniswapSwapper.sol/UniswapV3Swapper.json deleted file mode 100644 index 1171431..0000000 --- a/deployment/arb1/out/UniswapSwapper.sol/UniswapV3Swapper.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"factory_","type":"address","internalType":"contract IUniswapV3Factory"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"},{"name":"oracleSeconds_","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e0346100a257601f6100f838819003918201601f19168301916001600160401b038311848410176100a7578084926060946040528339810103126100a2578051906001600160a01b03821682036100a2576020810151906001600160a01b03821682036100a257604001519163ffffffff831683036100a25760a05260805260c052604051603a90816100be823960805181505060a05181505060c051815050f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe600080fdfea2646970667358221220ddba28950b817aa3c7038c357c959b5efc29395a6f94784e7db76a732f8f0cc064736f6c634300081a0033","sourceMap":"811:8458:64:-:0;;;;;;;;;;;;;-1:-1:-1;;811:8458:64;;;;-1:-1:-1;;;;;811:8458:64;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;811:8458:64;;;;;;;;;;;-1:-1:-1;;;;;811:8458:64;;;;;;;;;;;;;;;;;1214:18;;1242:24;;1276:30;;811:8458;;;;;;;;1242:24;811:8458;;;;1214:18;811:8458;;;;1276:30;811:8458;;;;;;-1:-1:-1;811:8458:64;;;;;;-1:-1:-1;811:8458:64;;;;;-1:-1:-1;811:8458:64","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ddba28950b817aa3c7038c357c959b5efc29395a6f94784e7db76a732f8f0cc064736f6c634300081a0033","sourceMap":"811:8458:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"factory_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"oracleSeconds_\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/UniswapSwapper.sol\":\"UniswapV3Swapper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IUniswapV3Factory","name":"factory_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"},{"internalType":"uint32","name":"oracleSeconds_","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/UniswapSwapper.sol":"UniswapV3Swapper"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null}},"version":1},"id":64} \ No newline at end of file diff --git a/deployment/arb1/out/UniswapV3.sol/UniswapV3.json b/deployment/arb1/out/UniswapV3.sol/UniswapV3.json deleted file mode 100644 index d0bdfbd..0000000 --- a/deployment/arb1/out/UniswapV3.sol/UniswapV3.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212201fea1c940211b37d1dcf603285226da6a6ccf70b2672c4a1f3718ef8e9c658c864736f6c634300081a0033","sourceMap":"473:389:65:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212201fea1c940211b37d1dcf603285226da6a6ccf70b2672c4a1f3718ef8e9c658c864736f6c634300081a0033","sourceMap":"473:389:65:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/UniswapV3.sol\":\"UniswapV3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/UniswapV3.sol":"UniswapV3"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null}},"version":1},"id":65} \ No newline at end of file diff --git a/deployment/arb1/out/UniswapV3.sol/UniswapV3Arbitrum.json b/deployment/arb1/out/UniswapV3.sol/UniswapV3Arbitrum.json deleted file mode 100644 index 3af019e..0000000 --- a/deployment/arb1/out/UniswapV3.sol/UniswapV3Arbitrum.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"IUniswapV3Factory","internalType":"contract IUniswapV3Factory"}],"stateMutability":"view"},{"type":"function","name":"nfpm","inputs":[],"outputs":[{"name":"","type":"INonfungiblePositionManager","internalType":"contract INonfungiblePositionManager"}],"stateMutability":"view"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"ISwapRouter","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"weth9","inputs":[],"outputs":[{"name":"","type":"IWETH9","internalType":"contract IWETH9"}],"stateMutability":"view"}],"bytecode":{"object":"0x608080604052346019576101a4908161001f823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816350879c1c14610128575080637303e913146100e0578063c31c9c07146100985763c45a01551461004b57600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610093576020604051731f98431c8ad98523631ae4a59f267346ea31f9848152f35b600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009357602060405173e592427a0aece92de3edee1f18e0157c058615648152f35b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009357602060405173c36442b4a4522e871399cd717abdd847ab11fe888152f35b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009357807382af49447d8a07e3bd95bd0d56f35241523fbab160209252f3fea264697066735822122088495f584ba57ef202805e2c3324ec62c7472039e42add5e0aa160b9970fecf564736f6c634300081a0033","sourceMap":"895:457:65:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c90816350879c1c14610128575080637303e913146100e0578063c31c9c07146100985763c45a01551461004b57600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610093576020604051731f98431c8ad98523631ae4a59f267346ea31f9848152f35b600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009357602060405173e592427a0aece92de3edee1f18e0157c058615648152f35b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009357602060405173c36442b4a4522e871399cd717abdd847ab11fe888152f35b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009357807382af49447d8a07e3bd95bd0d56f35241523fbab160209252f3fea264697066735822122088495f584ba57ef202805e2c3324ec62c7472039e42add5e0aa160b9970fecf564736f6c634300081a0033","sourceMap":"895:457:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1076:42;895:457;;;;;;;;;;;;;;;;;;1178:42;895:457;;;;;;;;;;;;;;1306:42;895:457;;;;;;;;;;;;965:42;895:457;;;","linkReferences":{}},"methodIdentifiers":{"factory()":"c45a0155","nfpm()":"7303e913","swapRouter()":"c31c9c07","weth9()":"50879c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"IUniswapV3Factory\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nfpm\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"INonfungiblePositionManager\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"ISwapRouter\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth9\",\"outputs\":[{\"internalType\":\"contract IWETH9\",\"name\":\"\",\"type\":\"IWETH9\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/UniswapV3.sol\":\"UniswapV3Arbitrum\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"IUniswapV3Factory"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nfpm","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"INonfungiblePositionManager"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"ISwapRouter"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weth9","outputs":[{"internalType":"contract IWETH9","name":"","type":"IWETH9"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/UniswapV3.sol":"UniswapV3Arbitrum"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null}},"version":1},"id":65} \ No newline at end of file diff --git a/deployment/arb1/out/UniswapV3.sol/UniswapV3ArbitrumSepolia.json b/deployment/arb1/out/UniswapV3.sol/UniswapV3ArbitrumSepolia.json deleted file mode 100644 index 5d2cde8..0000000 --- a/deployment/arb1/out/UniswapV3.sol/UniswapV3ArbitrumSepolia.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"IUniswapV3Factory","internalType":"contract IUniswapV3Factory"}],"stateMutability":"view"},{"type":"function","name":"nfpm","inputs":[],"outputs":[{"name":"","type":"INonfungiblePositionManager","internalType":"contract INonfungiblePositionManager"}],"stateMutability":"view"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"ISwapRouter","internalType":"contract ISwapRouter"}],"stateMutability":"view"}],"bytecode":{"object":"0x60808060405234601957610151908161001f823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081637303e913146100d557508063c31c9c071461008d5763c45a01551461004057600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008857602060405173248ab79bbb9bc29bb72f7cd42f17e054fc40188e8152f35b600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008857602060405173e592427a0aece92de3edee1f18e0157c058615648152f35b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100885780736b2937bde17889edcf8fbd8de31c3c2a70bc4d6560209252f3fea26469706673582212203fca2f4b9a8d70e5ffdd730b9a3d564d70e472efd441249ba7ea5cab8d71104464736f6c634300081a0033","sourceMap":"1365:377:65:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c9081637303e913146100d557508063c31c9c071461008d5763c45a01551461004057600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008857602060405173248ab79bbb9bc29bb72f7cd42f17e054fc40188e8152f35b600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261008857602060405173e592427a0aece92de3edee1f18e0157c058615648152f35b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100885780736b2937bde17889edcf8fbd8de31c3c2a70bc4d6560209252f3fea26469706673582212203fca2f4b9a8d70e5ffdd730b9a3d564d70e472efd441249ba7ea5cab8d71104464736f6c634300081a0033","sourceMap":"1365:377:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:42;1365:377;;;;;;;;;;;;;;;;;;1568:42;1365:377;;;;;;;;;;;;1696:42;1365:377;;;","linkReferences":{}},"methodIdentifiers":{"factory()":"c45a0155","nfpm()":"7303e913","swapRouter()":"c31c9c07"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Factory\",\"name\":\"\",\"type\":\"IUniswapV3Factory\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nfpm\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"INonfungiblePositionManager\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"ISwapRouter\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/UniswapV3.sol\":\"UniswapV3ArbitrumSepolia\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"IUniswapV3Factory"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nfpm","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"INonfungiblePositionManager"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"ISwapRouter"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/UniswapV3.sol":"UniswapV3ArbitrumSepolia"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null}},"version":1},"id":65} \ No newline at end of file diff --git a/deployment/arb1/out/Upgrade.sol/Upgrade.json b/deployment/arb1/out/Upgrade.sol/Upgrade.json deleted file mode 100644 index 809f8bd..0000000 --- a/deployment/arb1/out/Upgrade.sol/Upgrade.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":"0x608080604052346026576201000162ff00ff19600c541617600c55617dc3908161002c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346108ab57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108ab577f350d56bf00000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f464143544f5259000000000000000000000000000000000000000000000000006044820152602081606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156106545773ffffffffffffffffffffffffffffffffffffffff91839161088c575b5061014e81610950565b1690811561082e576040517faf269745000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610654579073ffffffffffffffffffffffffffffffffffffffff91839161080f575b506101eb6040516101bc6040826108af565b600881527f757067726164657200000000000000000000000000000000000000000000000060208201526109bf565b6101f481610950565b6101fd33610950565b1633036107b1576102446040516102156040826108af565b601281527f6f6c6420696d706c656d656e746174696f6e000000000000000000000000000060208201526109bf565b6040517f5c60da1b000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610654579073ffffffffffffffffffffffffffffffffffffffff918391610792575b5016916102a483610950565b6040517fd0fb0203000000000000000000000000000000000000000000000000000000008152602081600481875afa80156106df57839061072f575b73ffffffffffffffffffffffffffffffffffffffff91506103376040516103086040826108af565b600b81527f666565206d616e6167657200000000000000000000000000000000000000000060208201526109bf565b1661034181610950565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561072b576040517f7fb5297f000000000000000000000000000000000000000000000000000000008152838160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156106d457610717575b506103eb6040516103bc6040826108af565b601c81527f6465706c6f79206e657720726f757465722028417262697472756d290000000060208201526109bf565b604051611e7a8082019082821067ffffffffffffffff8311176106ea57908291610a838339039084f09384156106df57602060049161045f6040516104316040826108af565b601981527f6465706c6f79206e657720696d706c656d656e746174696f6e00000000000000848201526109bf565b604051928380927fac210cc70000000000000000000000000000000000000000000000000000000082525afa9081156106d45784916106a5575b5060405191615491958684019684881067ffffffffffffffff89111761067857606093859373ffffffffffffffffffffffffffffffffffffffff899a9481946128fd8839168452602084015216604082015203019083f08015610654576105366040516105076040826108af565b600e81527f696e766f6b65207570677261646500000000000000000000000000000000000060208201526109bf565b813b156106745773ffffffffffffffffffffffffffffffffffffffff602484928360405195869485937f83f94db70000000000000000000000000000000000000000000000000000000085521660048401525af180156106545761065f575b50506105d76040516105a86040826108af565b601581527f696d706c20757067726164652070726f706f736564000000000000000000000060208201526109bf565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561007a57806040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610654576106435750f35b8161064d916108af565b61007a5780f35b6040513d84823e3d90fd5b81610669916108af565b61007a578038610595565b5050fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6106c7915060203d6020116106cd575b6106bf81836108af565b81019061091f565b38610499565b503d6106b5565b6040513d86823e3d90fd5b6040513d85823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b83610724919492946108af565b91386103aa565b8280fd5b506020813d60201161078a575b81610749602093836108af565b8101031261072b575173ffffffffffffffffffffffffffffffffffffffff8116810361072b5773ffffffffffffffffffffffffffffffffffffffff906102e0565b3d915061073c565b6107ab915060203d6020116106cd576106bf81836108af565b38610298565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d757374206265207570677261646572206163636f756e7400000000000000006044820152fd5b610828915060203d6020116106cd576106bf81836108af565b386101aa565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d7573742073657420464143544f525920656e767661720000000000000000006044820152fd5b6108a5915060203d6020116106cd576106bf81836108af565b38610144565b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108f057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9081602091031261094b575173ffffffffffffffffffffffffffffffffffffffff8116810361094b5790565b600080fd5b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc2000000000000000000000000000000000000000000000000000000006020840152166024820152602481526109a86044826108af565b6020815191016a636f6e736f6c652e6c6f675afa50565b604051907f41304fac0000000000000000000000000000000000000000000000000000000060208301526020602483015280519081604484015260005b828110610a6c575050816109a86064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86600085819a99829a0101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826108af565b80602080928401015160648287010152016109fc56fe60e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a0033a26469706673582212200f28e5e39ab25f575ae81c8714b0385c9e2dd87f6ad20ab3092e2ecb1ef5879464736f6c634300081a0033","sourceMap":"322:1222:57:-:0;;;;;;;;;;3166:4:2;322:1222:57;;;3166:4:2;322:1222:57;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163c04062261461007d575063f8ccbf471461003757600080fd5b3461007a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261007a57602060ff600c5460101c166040519015158152f35b80fd5b9050346108ab57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126108ab577f350d56bf00000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f464143544f5259000000000000000000000000000000000000000000000000006044820152602081606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156106545773ffffffffffffffffffffffffffffffffffffffff91839161088c575b5061014e81610950565b1690811561082e576040517faf269745000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610654579073ffffffffffffffffffffffffffffffffffffffff91839161080f575b506101eb6040516101bc6040826108af565b600881527f757067726164657200000000000000000000000000000000000000000000000060208201526109bf565b6101f481610950565b6101fd33610950565b1633036107b1576102446040516102156040826108af565b601281527f6f6c6420696d706c656d656e746174696f6e000000000000000000000000000060208201526109bf565b6040517f5c60da1b000000000000000000000000000000000000000000000000000000008152602081600481865afa908115610654579073ffffffffffffffffffffffffffffffffffffffff918391610792575b5016916102a483610950565b6040517fd0fb0203000000000000000000000000000000000000000000000000000000008152602081600481875afa80156106df57839061072f575b73ffffffffffffffffffffffffffffffffffffffff91506103376040516103086040826108af565b600b81527f666565206d616e6167657200000000000000000000000000000000000000000060208201526109bf565b1661034181610950565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561072b576040517f7fb5297f000000000000000000000000000000000000000000000000000000008152838160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156106d457610717575b506103eb6040516103bc6040826108af565b601c81527f6465706c6f79206e657720726f757465722028417262697472756d290000000060208201526109bf565b604051611e7a8082019082821067ffffffffffffffff8311176106ea57908291610a838339039084f09384156106df57602060049161045f6040516104316040826108af565b601981527f6465706c6f79206e657720696d706c656d656e746174696f6e00000000000000848201526109bf565b604051928380927fac210cc70000000000000000000000000000000000000000000000000000000082525afa9081156106d45784916106a5575b5060405191615491958684019684881067ffffffffffffffff89111761067857606093859373ffffffffffffffffffffffffffffffffffffffff899a9481946128fd8839168452602084015216604082015203019083f08015610654576105366040516105076040826108af565b600e81527f696e766f6b65207570677261646500000000000000000000000000000000000060208201526109bf565b813b156106745773ffffffffffffffffffffffffffffffffffffffff602484928360405195869485937f83f94db70000000000000000000000000000000000000000000000000000000085521660048401525af180156106545761065f575b50506105d76040516105a86040826108af565b601581527f696d706c20757067726164652070726f706f736564000000000000000000000060208201526109bf565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561007a57806040517f76eadd36000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610654576106435750f35b8161064d916108af565b61007a5780f35b6040513d84823e3d90fd5b81610669916108af565b61007a578038610595565b5050fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6106c7915060203d6020116106cd575b6106bf81836108af565b81019061091f565b38610499565b503d6106b5565b6040513d86823e3d90fd5b6040513d85823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b83610724919492946108af565b91386103aa565b8280fd5b506020813d60201161078a575b81610749602093836108af565b8101031261072b575173ffffffffffffffffffffffffffffffffffffffff8116810361072b5773ffffffffffffffffffffffffffffffffffffffff906102e0565b3d915061073c565b6107ab915060203d6020116106cd576106bf81836108af565b38610298565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d757374206265207570677261646572206163636f756e7400000000000000006044820152fd5b610828915060203d6020116106cd576106bf81836108af565b386101aa565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d7573742073657420464143544f525920656e767661720000000000000000006044820152fd5b6108a5915060203d6020116106cd576106bf81836108af565b38610144565b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108f057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9081602091031261094b575173ffffffffffffffffffffffffffffffffffffffff8116810361094b5790565b600080fd5b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc2000000000000000000000000000000000000000000000000000000006020840152166024820152602481526109a86044826108af565b6020815191016a636f6e736f6c652e6c6f675afa50565b604051907f41304fac0000000000000000000000000000000000000000000000000000000060208301526020602483015280519081604484015260005b828110610a6c575050816109a86064827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86600085819a99829a0101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826108af565b80602080928401015160648287010152016109fc56fe60e08060405234607357731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c052611e0190816100798239608051818181610546015261085b015260a051818181610de70152611059015260c051816110210152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80634f78bfff1461019c57806377aa2cd114610178576390b54f081461003d57600080fd5b34610173576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610173576004356002811015610173576101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610173576040516100b081610243565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361017357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361017357602082015260643573ffffffffffffffffffffffffffffffffffffffff81168103610173576040820152608435606082015260a435608082015260c43580151581036101735760a082015260e43560c0820152610104359062ffffff82168203610173576040926101679260e0830152610416565b82519182526020820152f35b600080fd5b3461017357602061019461018b366101b8565b9291909161039a565b604051908152f35b346101735760206101946101af366101b8565b929190916102ec565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6080910112610173576004356002811015610173579060243573ffffffffffffffffffffffffffffffffffffffff81168103610173579060443573ffffffffffffffffffffffffffffffffffffffff81168103610173579060643562ffffff811681036101735790565b610100810190811067ffffffffffffffff82111761026057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761026057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761026057604052565b92919092600281101561036b5760011461035f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892610dc7565b90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b92919092600281101561036b5760011461040d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b61036892611018565b919091600281101561036b57600114610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b60009160c0810192835180158015610cfc575b505060a0820151156107cf57506060810151926024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561071a5760009161079a575b508015801561078d575b61072e57848110610726575b5073ffffffffffffffffffffffffffffffffffffffff610576818451169261056d87847f0000000000000000000000000000000000000000000000000000000000000000168096611ce3565b5160601b611d45565b169073ffffffffffffffffffffffffffffffffffffffff8351169173ffffffffffffffffffffffffffffffffffffffff60208501511662ffffff60e08601511673ffffffffffffffffffffffffffffffffffffffff60408701511691604051956105df87610243565b865260208601908152604080870192835260608701938452426080880190815260a088018b8152600160c08a0190815260e08a0197885292517f414bf389000000000000000000000000000000000000000000000000000000008152985173ffffffffffffffffffffffffffffffffffffffff90811660048b01529351841660248a0152935162ffffff16604489015293518216606488015292516084870152905160a4860152905160c485015290511660e4830152602082610104816000855af191821561071a576000926106d2575b5073ffffffffffffffffffffffffffffffffffffffff61036892935116611b7c565b91506020823d602011610712575b816106ed602093836102ab565b810103126101735790519073ffffffffffffffffffffffffffffffffffffffff6106b0565b3d91506106e0565b6040513d6000823e3d90fd5b935038610521565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060808301518110610515565b906020823d6020116107c7575b816107b4602093836102ab565b810103126107c45750513861050b565b80fd5b3d91506107a7565b90928193826024602073ffffffffffffffffffffffffffffffffffffffff845116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610cf1578291610cbb575b50801561072e5773ffffffffffffffffffffffffffffffffffffffff610882818551169561056d84847f0000000000000000000000000000000000000000000000000000000000000000168099611ce3565b169073ffffffffffffffffffffffffffffffffffffffff84511690602085019073ffffffffffffffffffffffffffffffffffffffff8251169060e08701938860206109c861010462ffffff8951169460408d01978d606073ffffffffffffffffffffffffffffffffffffffff8b51169101978851926040519461090486610243565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610c87575b50610c595750506001946109e4610f49565b6308c379a014610a27575b5050505050610a1b57509073ffffffffffffffffffffffffffffffffffffffff610368925b5116611b7c565b604051903d90823e3d90fd5b610a2f610f67565b9485610a3c575b506109ef565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610a808b610243565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610c21575b50610c0e578787610b58610f49565b6308c379a014610b70575b50604051903d90823e3d90fd5b610b78610f67565b15610b635760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610bf6575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610bb7565b9693955090929091388080808080610a36565b9096506020813d602011610c51575b81610c3d602093836102ab565b81010312610c4d57519538610b49565b8880fd5b3d9150610c30565b95509a50505050506103689392945073ffffffffffffffffffffffffffffffffffffffff9150955193610a14565b9091506020813d602011610cb3575b81610ca3602093836102ab565b81010312610c4d575190386109d2565b3d9150610c96565b90506020813d602011610ce9575b81610cd6602093836102ab565b81010312610ce5575138610830565b5080fd5b3d9150610cc9565b6040513d84823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff84511673ffffffffffffffffffffffffffffffffffffffff602086015116101561049b57610d5d577801000000000000000000000000000000000000000000000000048452388061049b565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff8216820361017357565b519061ffff8216820361017357565b5190811515820361017357565b73ffffffffffffffffffffffffffffffffffffffff939260e092610e0b927f0000000000000000000000000000000000000000000000000000000000000000611844565b91906004604051809681937f3850c7bd000000000000000000000000000000000000000000000000000000008352165afa801561071a57600090610e55575b6103689293506119c0565b60e0843d60e011610edd575b81610e6e60e093836102ab565b810103126107c457610e7f84610d8a565b9060208501518060020b036107c457610e9a60408601610dab565b50610ea760608601610dab565b50610eb460808601610dab565b5060a085015160ff8116036107c45750610ed460c0610368949501610dba565b50839250610e4a565b3d9150610e61565b67ffffffffffffffff81116102605760051b60200190565b805115610f0a5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015610f0a5760400190565b60009060033d11610f5657565b905060046000803e60005160e01c90565b600060443d10610368576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff841117611012578282019283519167ffffffffffffffff831161100a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020848701011161100a5750610368929101602001906102ab565b949350505050565b92915050565b919063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611051575b5061036892610dc7565b61107d8383867f0000000000000000000000000000000000000000000000000000000000000000611844565b91906040519061108e6060836102ab565b6002825260208201916040368437836110a682610efd565b5260006110b282610f39565b526040519283917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b81811061182557505050918173ffffffffffffffffffffffffffffffffffffffff816000950392165afa60009181611705575b5061116657505050600161113a610f49565b6308c379a014611151575b61071a57610368611047565b611159610f67565b1561114557506000611145565b9194509250905061118361117982610f39565b5160060b91610efd565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008312176116c75760030b9060060b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff800000000000008214166116c75781810560020b916000821291826116f6575b5050611679575b60020b9060008212156116735781600003915b620d89e883116116155760018316156115ec5770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b1692600281166115d0575b600481166115b4575b60088116611598575b6010811661157c575b60208116611560575b60408116611544575b60808116611528575b610100811661150c575b61020081166114f0575b61040081166114d4575b61080081166114b8575b611000811661149c575b6120008116611480575b6140008116611464575b6180008116611448575b62010000811661142c575b620200008116611411575b6204000081166113f6575b62080000166113dd575b60001261137d575b73ffffffffffffffffffffffffffffffffffffffff6103689263ffffffff8116156000146113745760ff60005b169060201c01166119c0565b60ff6001611368565b81156113ae577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091049061133b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c91611333565b6d2216e584f5fa1ea926041bedfe9890930260801c92611329565b926e5d6af8dedb81196699c329225ee6040260801c9261131e565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92611313565b926f31be135f97d08fd981231505542fcfa60260801c92611308565b926f70d869a156d2a1b890bb3df62baf32f70260801c926112fe565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926112f4565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926112ea565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926112e0565b926ff3392b0822b70005940c7a398e4b70f30260801c926112d6565b926ff987a7253ac413176f2b074cf7815e540260801c926112cc565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c926112c2565b926ffe5dee046a99a2a811c461f1969c30530260801c926112b8565b926fff2ea16466c96a3843ec78b326b528610260801c926112af565b926fff973b41fa98c081472e6896dfb254c00260801c926112a6565b926fffcb9843d60f6159c9db58835c9266440260801c9261129d565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92611294565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c9261128b565b926ffff97272373d413259a46990580e213a0260801c92611282565b70ffffffffffffffffffffffffffffffffff700100000000000000000000000000000000611277565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611240565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146116c7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161122d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b151590503880611226565b90913d8082843e61171681846102ab565b8201906040838303126107c457825167ffffffffffffffff8111610ce55783019282601f85011215610ce557835161174d81610ee5565b9461175b60405196876102ab565b81865260208087019260051b8201019085821161182157602001915b8183106118035750505060208101519067ffffffffffffffff82116117ff570182601f82011215610ce5578051916020806117b185610ee5565b6117be60405191826102ab565b858152019360051b8301019384116107c45750602001905b8282106117e7575050509038611128565b602080916117f484610d8a565b8152019101906117d6565b8280fd5b82518060060b810361181d57815260209283019201611777565b8580fd5b8480fd5b825163ffffffff168452869450602093840193909201916001016110f5565b90939291604092818690600086805161185c8161028f565b828152826020820152015273ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff89161197886119b5575b505062ffffff73ffffffffffffffffffffffffffffffffffffffff808751936118c58561028f565b16948584521692836020840152169485910152808210156101735773ffffffffffffffffffffffffffffffffffffffff936040519160208301938452604083015260608201526060815261191a6080826102ab565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055820152605581526119ad6075826102ab565b519020169190565b93509050388061189d565b9015611a225773ffffffffffffffffffffffffffffffffffffffff1680156113ae578078ffffffffffffffffffffffffffffffffffffffffffffffffff6103689278010000000000000000000000000000000000000000000000000416611abc565b73ffffffffffffffffffffffffffffffffffffffff6103689116806000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611ab257836c0100000000000000000000000011156107c45750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611b6f5783821115610173576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015610173570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611bde6064826102ab565b51925af13d15611cdc573d67ffffffffffffffff81116102605760405190611c2e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ab565b81523d6000602083013e5b81611ca5575b5015611c4757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611cba575b505038611c3f565b8192509060209181010312610173576020611cd59101610dba565b3880611cb2565b6060611c39565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611bde6064826102ab565b80611d505750600090565b906003821115611dc557600182018083116116c75760011c825b838210611d75575050565b9092508260008115611d9857508082049081018091116116c75760011c90611d6a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220559f171ccc7ef2347dc214d4e700261a86c07fef846653b17a7477329794dfa164736f6c634300081a003360e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a0033a26469706673582212200f28e5e39ab25f575ae81c8714b0385c9e2dd87f6ad20ab3092e2ecb1ef5879464736f6c634300081a0033","sourceMap":"322:1222:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:28:1;322:1222:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:14:0;411:24:57;;1590:14:0;322:1222:57;411:24;;1590:14:0;;;;;;;;;;;;411:24:57;;;322:1222;411:24;;;;;;322:1222;411:24;;;;;322:1222;458:11;;;;:::i;:::-;322:1222;489:25;;;1590:14:0;;322:1222:57;;1590:14:0;631:18:57;;1590:14:0;631:18:57;322:1222;631:18;;;;;;;;;;322:1222;631:18;;;;;322:1222;1590:14:0;659:24:57;322:1222;;1590:14:0;322:1222:57;1590:14:0;;:::i;:::-;;;;;;;;;659:24:57;:::i;:::-;706:8;;;:::i;:::-;738:10;;;:::i;:::-;322:1222;738:10;768:22;1590:14:0;;830:34:57;322:1222;;1590:14:0;322:1222:57;1590:14:0;;:::i;:::-;;;;;;;;;830:34:57;:::i;:::-;322:1222;;1590:14:0;906:24:57;;1590:14:0;906:24:57;322:1222;906:24;;;;;;;;;;322:1222;906:24;;;;;322:1222;;;954:16;;;;:::i;:::-;322:1222;;1590:14:0;1006:20:57;;1590:14:0;1006:20:57;322:1222;1006:20;;;;;;;;;;;;322:1222;;1590:14:0;;1036:27:57;322:1222;;1590:14:0;322:1222:57;1590:14:0;;:::i;:::-;;;;;;;;;1036:27:57;:::i;:::-;322:1222;1086:19;;;:::i;:::-;322:1222;1116:19;;;;322:1222;;1590:14:0;1116:19:57;;;;322:1222;1116:19;;322:1222;1116:19;;;;;;;;322:1222;1590:14:0;1145:44:57;322:1222;;1590:14:0;322:1222:57;1590:14:0;;:::i;:::-;;;;;;;;;1145:44:57;:::i;:::-;322:1222;;1216:20;;;;;;;;1590:14:0;1216:20:57;;;;;;;;;;;;;;;;;;;;1590:14:0;322:1222:57;1590:14:0;1246:41:57;322:1222;;1590:14:0;322:1222:57;1590:14:0;;:::i;:::-;;;;;;;;;1246:41:57;:::i;:::-;322:1222;;1348:17;;;;1590:14:0;1348:17:57;;;;;;;;;;;;;322:1222;;;;1314:52;;;;;;;;;;1590:14:0;1314:52:57;;;;;1590:14:0;1314:52:57;;;322:1222;1314:52;;;;;;;;322:1222;1590:14:0;;;;;;322:1222:57;;1590:14:0;;;1314:52:57;;;;;;;;;1376:30;322:1222;;1590:14:0;322:1222:57;1590:14:0;;:::i;:::-;;;;;;;;;1376:30:57;:::i;:::-;1416:44;;;;;322:1222;1590:14:0;322:1222:57;;;;;1416:44;;;;;1590:14:0;1416:44:57;;322:1222;;1416:44;;1590:14:0;1416:44:57;;;;;;;;322:1222;1590:14:0;;1470:37:57;322:1222;;1590:14:0;322:1222:57;1590:14:0;;:::i;:::-;;;;;;;;;1470:37:57;:::i;:::-;322:1222;1517:18;;;;322:1222;;;1590:14:0;1517:18:57;;;;322:1222;1517:18;;322:1222;1517:18;;;;;;;;322:1222;;1517:18;;;;;:::i;:::-;322:1222;;1517:18;322:1222;1517:18;322:1222;;1590:14:0;322:1222:57;;1590:14:0;;;;1416:44:57;;;;;:::i;:::-;322:1222;;1416:44;;;;;322:1222;;;1314:52;1590:14:0;;;;;;322:1222:57;1590:14:0;;1348:17:57;;;;1590:14:0;1348:17:57;1590:14:0;1348:17:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;322:1222;;1590:14:0;322:1222:57;;1590:14:0;;;;1216:20:57;322:1222;;1590:14:0;322:1222:57;;1590:14:0;;;;1216:20:57;1590:14:0;;;;;;322:1222:57;1590:14:0;;1116:19:57;;;;;;;;:::i;:::-;;;;;;322:1222;;;1006:20;;1590:14:0;1006:20:57;;1590:14:0;1006:20:57;;;;;;1590:14:0;1006:20:57;;;:::i;:::-;;;1590:14:0;;;;;322:1222:57;;;1590:14:0;;;;322:1222:57;1006:20;;;;;;-1:-1:-1;1006:20:57;;906:24;;;;1590:14:0;906:24:57;1590:14:0;906:24:57;;;;;;;:::i;:::-;;;;1590:14:0;411:24:57;322:1222;;1590:14:0;;;;322:1222:57;1590:14:0;;;;;;;;;;;;;;631:18:57;;;;1590:14:0;631:18:57;1590:14:0;631:18:57;;;;;;;:::i;:::-;;;;1590:14:0;411:24:57;322:1222;;1590:14:0;;;;322:1222:57;1590:14:0;;;;;;;;;;;;;;411:24:57;;;;1590:14:0;411:24:57;1590:14:0;411:24:57;;;;;;;:::i;:::-;;;;322:1222;;;;1590:14:0;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1590:14:0;;;;;-1:-1:-1;1590:14:0;;;;;;;;;;;322:1222:57;;;1590:14:0;;;;;:::o;:::-;-1:-1:-1;1590:14:0;;6841:116:11;1222:159;6841:116;;322:1222:57;;;6906:43:11;;;;;;322:1222:57;6906:43:11;;;1590:14:0;6906:43:11;;;;;;;:::i;:::-;1222:159;322:1222:57;;1222:159:11;;591:42;1222:159;;;6841:116::o;6598:121::-;322:1222:57;;6669:42:11;;;;;;;;;;322:1222:57;;;;;;;;1590:14:0;-1:-1:-1;322:1222:57;;;;;;;;;6669:42:11;1590:14:0;322:1222:57;1590:14:0;;322:1222:57;-1:-1:-1;322:1222:57;;;;;;;;;1590:14:0;;322:1222:57;;6669:42:11;;1590:14:0;6669:42:11;;;;;;:::i;322:1222:57:-;;6669:42:11;322:1222:57;;;;;;1590:14:0;322:1222:57;;;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":{\"script/Upgrade.sol\":\"Upgrade\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/Script.sol\":{\"keccak256\":\"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c\",\"dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e\"]},\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"script/Upgrade.sol\":{\"keccak256\":\"0x15af96e53760fce08c7ed4d0103877cfb17792d848aaa04e7c38b277925f3ac9\",\"urls\":[\"bzz-raw://cb0855c96e2b3eed7441a86bde1b06a1e7dff3c9883846332b22c7f2b4baba23\",\"dweb:/ipfs/Qmc5WAPGdVpP1sdY3QDkeoFHcR7coFMorFGyUR3hro4rxe\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1\",\"urls\":[\"bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03\",\"dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250\",\"urls\":[\"bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324\",\"dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe\",\"urls\":[\"bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a\",\"dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/Upgrade.sol":"Upgrade"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/Script.sol":{"keccak256":"0x2315be74cc2826f9da401bea3da46a10ad6a6efdf73176d79160b453286d0ed2","urls":["bzz-raw://af0d4dc826911d6cb4d6272ed5cbdb6950e1476141cca328e178b808d848789c","dweb:/ipfs/QmV2ytjUEkV84VtdMs1nZqQTBoVE987cHboQMpiha5yo3e"],"license":"MIT"},"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"script/Upgrade.sol":{"keccak256":"0x15af96e53760fce08c7ed4d0103877cfb17792d848aaa04e7c38b277925f3ac9","urls":["bzz-raw://cb0855c96e2b3eed7441a86bde1b06a1e7dff3c9883846332b22c7f2b4baba23","dweb:/ipfs/Qmc5WAPGdVpP1sdY3QDkeoFHcR7coFMorFGyUR3hro4rxe"],"license":null},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Router.sol":{"keccak256":"0x87dddcb4c2e8ce228d637176f6e1f8ffa4390ec01e7786d89f2f58fb3adec1a1","urls":["bzz-raw://b80637543037113843fe1ed2472fdfa7866d13e83093520f89d947e2d8e47d03","dweb:/ipfs/QmWYbPUWoAWJYC9S8tm6Kqgia43XZJX32kYarTEf56birS"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x930574e35f555f2f1bbc1c139ea9709571991dd2ed385557af05f22106db8250","urls":["bzz-raw://b6b6882f0cb90a4c719eb7f81777828cdbfc440cb4157efee4382cd5113e1324","dweb:/ipfs/QmWB943151W86hwgP2v2cd9TgY69hMARxWegpAkUAG5YFJ"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe","urls":["bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a","dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null}},"version":1},"id":57} \ No newline at end of file diff --git a/deployment/arb1/out/Util.sol/Util.json b/deployment/arb1/out/Util.sol/Util.json deleted file mode 100644 index 2da9eb4..0000000 --- a/deployment/arb1/out/Util.sol/Util.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212206cc916ac6d8f212a46a7f6e266ecb28721e783c547b83529cb166e590e6b10dc64736f6c634300081a0033","sourceMap":"96:1255:66:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212206cc916ac6d8f212a46a7f6e266ecb28721e783c547b83529cb166e590e6b10dc64736f6c634300081a0033","sourceMap":"96:1255:66:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Util.sol\":\"Util\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/Util.sol":"Util"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null}},"version":1},"id":66} \ No newline at end of file diff --git a/deployment/arb1/out/Vault.sol/Vault.json b/deployment/arb1/out/Vault.sol/Vault.json deleted file mode 100644 index db76d11..0000000 --- a/deployment/arb1/out/Vault.sol/Vault.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"num","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"upgrade","inputs":[{"name":"newImpl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"recipient","type":"address","internalType":"address payable"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawTo","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Killed","inputs":[],"anonymous":false},{"type":"event","name":"VaultCreated","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"num","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"VaultImplChanged","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultImplProposed","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"},{"name":"activationTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4","sourceMap":"1642:3258:67:-:0;;;;;;;1857:1:28;2061:21;1857:1;2876:10:67;2851:36;;1642:3258;;;2921:21;;;2876:10;2921:21;2876:10;;2921:21;;;;;;;2061::28;;;;;2921::67;;;-1:-1:-1;1642:3258:67;;;-1:-1:-1;;;;;;1642:3258:67;;;-1:-1:-1;;;;;1642:3258:67;;;;;;;;;;2897:45;;;;1642:3258;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3000:23:67;1642:3258;;;-1:-1:-1;;;;;;;;;;;2957:28:67;1642:3258;;2957:28;1642:3258;;;;;3000:23;1642:3258;;;;;;;;2851:36;1642:3258;;;;;;;;;;;;;;;2897:45;1642:3258;;;;;;2921:21;;;;;;;;;;;1642:3258;;;-1:-1:-1;;1642:3258:67;;;-1:-1:-1;;;;;1642:3258:67;;;;;;;;2921:21;1642:3258;;;;;2921:21;;1642:3258;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1642:3258:67;;;-1:-1:-1;;;;;;;;;;;1642:3258:67;;;:::i;:::-;2921:21;;;;;;;;;;;1642:3258;;;;;;;;-1:-1:-1;;;1642:3258:67;;;2921:21;1642:3258;;;;2921:21;;;;;;1642:3258;;;2061:21:28;1642:3258:67;;;;;;;;;;;;-1:-1:-1;;;;;1642:3258:67;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033","sourceMap":"1642:3258:67:-:0;;;;;;;;;-1:-1:-1;1642:3258:67;2603:64:20;1642:3258:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;4889:1;1642:3258;;;;;:::i;:::-;4837:42;1642:3258;4859:6;1642:3258;;4845:10;:20;4837:42;:::i;:::-;4889:1;:::i;1642:3258::-;;;;;;;:::o;:::-;;;;;;;;;;;;;2129:7;1642:3258;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1642:3258:67;;;;;;;4837:42;1642:3258;4859:6;1642:3258;;4845:10;:20;4837:42;:::i;:::-;1642:3258;4298:26;;;;;;;1642:3258;4298:26;;;;4339:32;1642:3258;;;-1:-1:-1;1642:3258:67;;4339:32;1642:3258;4298:26;;:::i;:::-;;;;;1642:3258;;;;;;;;;;;4034:6;1642:3258;;;-1:-1:-1;;;;1642:3258:67;;4837:42;4845:10;:20;;4837:42;:::i;:::-;4298:26;;;;;;;;;;4339:32;1642:3258;;;-1:-1:-1;1642:3258:67;;4339:32;1642:3258;;;;;;;;;;;;;;4859:6;1642:3258;4837:42;1642:3258;;;4845:10;:20;4837:42;:::i;:::-;3285:8;1642:3258;3285:8;;1642:3258;;4859:6;1642:3258;;;;;;;;;;;;;;;;;2284:4;1642:3258;;;;;;;;;;;;;;;;;1961:5;1642:3258;;;;;;;;;;;;;;;;;;;;;2209:6;1642:3258;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;4837:42;1642:3258;4859:6;1642:3258;;4845:10;:20;4837:42;:::i;:::-;4859:6;-1:-1:-1;1642:3258:67;2702:18:28;2698:86;;1642:3258:67;;1899:1:28;-1:-1:-1;1899:1:28;1642:3258:67;1899:1:28;4859:6:67;1899:1:28;;1642:3258:67;;4760:33;;;;;1642:3258;4760:33;;1642:3258;;4760:33;;1642:3258;;;;;;4760:33;;;;;;;;1642:3258;2531:1:28;1857;3068:21;1899:1;2888:208;4760:33:67;;;1642:3258;4760:33;1642:3258;4760:33;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2698:86:28;2743:30;-1:-1:-1;2743:30:28;1642:3258:67;-1:-1:-1;2743:30:28;1642:3258:67;;;;;;;;;;;;;;;2049:8;1642:3258;;;;;;;;;;;;;;;;;;;;:::i;:::-;4477:6;1642:3258;;;;;4837:42;4845:10;:20;;4837:42;:::i;:::-;4477:6;-1:-1:-1;1642:3258:67;2702:18:28;2698:86;;4760:33:67;1642:3258;1899:1:28;4477:6:67;-1:-1:-1;1899:1:28;-1:-1:-1;1642:3258:67;;;4760:33;;;;;1642:3258;4760:33;;1642:3258;4760:33;;1642:3258;;;;;;4760:33;;;;;;;;2531:1:28;1857;3068:21;1899:1;2888:208;1642:3258:67;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1642:3258:67;;;;;-1:-1:-1;1642:3258:67;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;3330:518;1642:3258;;3587:25;1642:3258;3587:25;;;:8;:25;:8;1642:3258;3587:8;1642:3258;3587:25;;;;;;;-1:-1:-1;3587:25:67;;;3330:518;1642:3258;3567:53;1642:3258;;;;;;3576:36;;3567:53;:::i;:::-;3648:5;1642:3258;;;;3666:16;;3663:51;;3723:15;;1642:3258;;;3648:5;1642:3258;;;3648:5;1642:3258;;3723:15;3767:4;3748:53;;;;1642:3258;;;3748:53;;1642:3258;;;;;3587:25;3748:53;;1642:3258;-1:-1:-1;1642:3258:67;;;-1:-1:-1;3767:4:67;3748:53;;;;;;;3816:25;3748:53;3816:25;3748:53;;;3330:518;-1:-1:-1;1642:3258:67;;;;;;;;;;;;;;;;3816:25;;;;3330:518::o;3748:53::-;;;-1:-1:-1;3748:53:67;;;:::i;:::-;;;:::i;:::-;;;;3663:51;3697:7;;:::o;3587:25::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3854:88;1642:3258;;3925:9;1642:3258;;3905:30;1642:3258;3913:10;3905:30;;3854:88::o;1642:3258::-;;;;;;;;;;;;;;;;;;:::o;2323:83:20:-;2757:7:67;1642:3258;;;;;2756:8;;:30;;2323:83:20;2748:44:67;;;:::i;:::-;2809:5;1642:3258;;;2381:17:20;:::i;2756:30:67:-;1642:3258;;;;2769:17;;;:8;:17;:8;1642:3258;2769:8;1642:3258;2769:17;;;;;;2748:44;2769:17;-1:-1:-1;2769:17:67;;;2756:30;2768:18;;2756:30;;;;2769:17;;;;;;;;;;;;;;:::i;:::-;;;;1642:3258;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;949:895:20;1019:819;949:895;;1019:819;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"51019":[{"start":1591,"length":32},{"start":2262,"length":32},{"start":2902,"length":32}],"51021":[{"start":994,"length":32}]}},"methodIdentifiers":{"factory()":"c45a0155","implementation()":"5c60da1b","kill()":"41c0e1b5","killed()":"1f3a0e41","num()":"4e70b1dc","owner()":"8da5cb5b","upgrade(address)":"0900f010","withdraw(address,uint256)":"f3fef3a3","withdraw(uint256)":"2e1a7d4d","withdrawTo(address,address,uint256)":"c3b35a7e","withdrawTo(address,uint256)":"205c2878"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Killed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"VaultCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"VaultImplChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"VaultImplProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"num\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImpl\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Vault.sol\":\"Vault\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[],"type":"event","name":"Killed","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint8","name":"num","type":"uint8","indexed":false}],"type":"event","name":"VaultCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false}],"type":"event","name":"VaultImplChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":false}],"type":"event","name":"VaultImplProposed","anonymous":false},{"inputs":[{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"num","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/Vault.sol":"Vault"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null}},"version":1},"id":67} \ No newline at end of file diff --git a/deployment/arb1/out/Vault.sol/VaultStorage.json b/deployment/arb1/out/Vault.sol/VaultStorage.json deleted file mode 100644 index da5b9f3..0000000 --- a/deployment/arb1/out/Vault.sol/VaultStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x608080604052346018576001600055603a9081601e8239f35b600080fdfe600080fdfea264697066735822122072b026989f79a89c58372450c1fd145e81d787de740e1846e1c3c7858f1225e664736f6c634300081a0033","sourceMap":"485:277:67:-:0;;;;;;;1857:1:28;2061:21;1857:1;485:277:67;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122072b026989f79a89c58372450c1fd145e81d787de740e1846e1c3c7858f1225e664736f6c634300081a0033","sourceMap":"485:277:67:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"}],\"devdoc\":{\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Vault.sol\":\"VaultStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/Vault.sol":"VaultStorage"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null}},"version":1},"id":67} \ No newline at end of file diff --git a/deployment/arb1/out/VaultAddress.sol/VaultAddress.json b/deployment/arb1/out/VaultAddress.sol/VaultAddress.json deleted file mode 100644 index 4d590d6..0000000 --- a/deployment/arb1/out/VaultAddress.sol/VaultAddress.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"VAULT_INIT_CODE_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523460175760b29081601d823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c6335855a6e14602657600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112607757807f8b1347850b0b1f2e05548c065af07c78f2c0617f70a2915b3cb7e0ba1bd2063060209252f35b600080fdfea2646970667358221220bcf96c8b8ea787b4ba285947b402043aaad47f3bef97b7913541b76e6eb1da3764736f6c634300081a0033","sourceMap":"62:1252:78:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c6335855a6e14602657600080fd5b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112607757807f8b1347850b0b1f2e05548c065af07c78f2c0617f70a2915b3cb7e0ba1bd2063060209252f35b600080fdfea2646970667358221220bcf96c8b8ea787b4ba285947b402043aaad47f3bef97b7913541b76e6eb1da3764736f6c634300081a0033","sourceMap":"62:1252:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;243:66;62:1252;;;;;;;","linkReferences":{}},"methodIdentifiers":{"VAULT_INIT_CODE_HASH()":"35855a6e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"VAULT_INIT_CODE_HASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/more/VaultAddress.sol\":\"VaultAddress\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"src/more/VaultAddress.sol\":{\"keccak256\":\"0x80249ab3b171a4554b7abfc405d1db4fbe7f2c28ff30ee9c101aef9dd90d6f4c\",\"urls\":[\"bzz-raw://5d64b2c48b31dfba3069192c761558740dbd4aa3100c7eb066017b9e9f8d6ec2\",\"dweb:/ipfs/QmV9AwfsrFN7YuaAoEWEw4XGuApAchgLTLH21rGCDb26k5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"VAULT_INIT_CODE_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/more/VaultAddress.sol":"VaultAddress"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"src/more/VaultAddress.sol":{"keccak256":"0x80249ab3b171a4554b7abfc405d1db4fbe7f2c28ff30ee9c101aef9dd90d6f4c","urls":["bzz-raw://5d64b2c48b31dfba3069192c761558740dbd4aa3100c7eb066017b9e9f8d6ec2","dweb:/ipfs/QmV9AwfsrFN7YuaAoEWEw4XGuApAchgLTLH21rGCDb26k5"],"license":null}},"version":1},"id":78} \ No newline at end of file diff --git a/deployment/arb1/out/VaultFactory.sol/VaultFactory.json b/deployment/arb1/out/VaultFactory.sol/VaultFactory.json deleted file mode 100644 index b111931..0000000 --- a/deployment/arb1/out/VaultFactory.sol/VaultFactory.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"upgrader_","type":"address","internalType":"address"},{"name":"vaultImpl_","type":"address","internalType":"address"},{"name":"upgradeNoticeDuration_","type":"uint32","internalType":"uint32"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployVault","inputs":[{"name":"num","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployVault","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployVault","inputs":[],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployVault","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"num","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"vault","type":"address","internalType":"contract IVault"}],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"parameters","inputs":[],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"num","type":"uint8","internalType":"uint8"},{"name":"vaultImpl","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposedImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposedImplActivationTimestamp","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"upgradeImplementation","inputs":[{"name":"newImpl","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeNoticeDuration","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"upgrader","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Killed","inputs":[],"anonymous":false},{"type":"event","name":"VaultImplChanged","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"VaultImplProposed","inputs":[{"name":"impl","type":"address","indexed":false,"internalType":"address"},{"name":"activationTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false}],"bytecode":{"object":"0x60c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a0033","sourceMap":"155:6006:68:-:0;;;;;;;;;;;;;-1:-1:-1;;155:6006:68;;;;-1:-1:-1;;;;;155:6006:68;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;2874:20;;-1:-1:-1;155:6006:68;;-1:-1:-1;;;;;;155:6006:68;;;;;;-1:-1:-1;;;;;155:6006:68;;;;;;;2937:46;;155:6006;;;;;;;;2874:20;155:6006;;;;;;;;;;;;;;;2937:46;155:6006;;;;;;;;;;;;-1:-1:-1;155:6006:68;;;;;;-1:-1:-1;155:6006:68;;;;;-1:-1:-1;155:6006:68;;;;-1:-1:-1;;;;;155:6006:68;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea26469706673582212209f444302fed1e3b8bc193d896909f66e8982cf2d4398fbdba95e5f0404c5082464736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220d59492425cc471db482a371b24b1f470d2431b7bbcf01c86bdd188a3a916953464736f6c634300081a0033","sourceMap":"155:6006:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;3766:24;;;;:::i;:::-;155:6006;;;;;;;;;;;;;;;;;;;;;;;;;;;621:42;155:6006;;;;;;;;;;;;;;;;;2651:36;155:6006;;;;;;;;;;;;;;;;;;;;3366:27;3379:10;3366:27;:::i;155:6006::-;;;;;;;;;;;;3243:37;155:6006;;3243:37;155:6006;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5153:47;5175:8;;155:6006;5161:10;:22;5153:47;:::i;:::-;155:6006;;;5306:22;155:6006;;;5306:22;155:6006;;5397:21;155:6006;5379:15;155:6006;5379:15;;155:6006;;;5434:72;155:6006;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5434:72;155:6006;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3628:22;155:6006;;:::i;:::-;3628:22;:::i;155:6006::-;;;;;;;;;;;;;;;;;;4975:36;;;:90;;;;155:6006;-1:-1:-1;4975:130:68;;;155:6006;;;5080:12;155:6006;;;;;;;;;;4975:130;155:6006;;;;;;4975:130;;:90;5050:15;;;-1:-1:-1;5015:50:68;4975:90;;;155:6006;;;;;;;;;;;;;;;2426:45;155:6006;;;;;;;;;;;;;;;5153:47;155:6006;5175:8;155:6006;5161:10;:22;5153:47;:::i;:::-;6124:4;155:6006;;;;;;;6143:8;155:6006;6143:8;;155:6006;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3494:29;155:6006;3507:10;;3494:29;:::i;155:6006::-;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;155:6006:68;;;;;-1:-1:-1;155:6006:68;;;;;;;;;;;;;;;;;;;;;:::o;3803:679::-;155:6006;;;;;;;4547:36;;;:90;;;;3803:679;4543:308;;;3803:679;155:6006;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;4247:31;;;155:6006;4247:31;155:6006;;;;4234:44;155:6006;;;4234:44;155:6006;;;;4234:44;155:6006;;4234:44;155:6006;;;;;;;;;;;;;;;4247:31;4415:27;;155:6006;;;;;;;;;;;4415:27;;;;;;;:::i;:::-;155:6006;4405:38;;155:6006;;4389:57;;;;;;;;;;;;;;;;;;;;155:6006;4389:57;;;;;155:6006;;;;4234:44;155:6006;;;;3803:679::o;4389:57::-;155:6006;;;;;;;;;4543:308;155:6006;4800:40;155:6006;;;4720:12;155:6006;;;;;;;;;;;;;;;;;;;4800:40;4543:308;;;4547:90;4622:15;;;-1:-1:-1;4587:50:68;4547:90;;;3803:679;;-1:-1:-1;155:6006:68;;;;;;4547:36;;;:90;;;;3803:679;4543:308;;;3803:679;155:6006;;;-1:-1:-1;155:6006:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4247:31;;;155:6006;4247:31;155:6006;;;;4234:44;155:6006;;;4234:44;155:6006;;;4234:44;155:6006;;;;;;;;;;4234:44;155:6006;;;;;;;;;;;;;;;4415:27;155:6006;4247:31;4415:27;;155:6006;;;;;;;;;;;;;4415:27;;;;;;;:::i;4543:308::-;155:6006;4800:40;155:6006;;;4720:12;155:6006;;;;;;;;-1:-1:-1;155:6006:68;;;;;;;;;;4800:40;4543:308;;;4547:90;4622:15;;;-1:-1:-1;4587:50:68;4547:90;;","linkReferences":{},"immutableReferences":{"51321":[{"start":362,"length":32},{"start":744,"length":32},{"start":1534,"length":32}],"51329":[{"start":833,"length":32},{"start":1425,"length":32}]}},"methodIdentifiers":{"deployVault()":"901c4e4f","deployVault(address)":"5eb512e7","deployVault(address,uint8)":"dd009fdc","deployVault(uint8)":"1a48240f","implementation()":"5c60da1b","kill()":"41c0e1b5","killed()":"1f3a0e41","parameters()":"89035730","proposedImpl()":"a41e649c","proposedImplActivationTimestamp()":"74832800","upgradeImplementation(address)":"83f94db7","upgradeNoticeDuration()":"4c2c3b0d","upgrader()":"af269745"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"upgrader_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultImpl_\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"upgradeNoticeDuration_\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Killed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"name\":\"VaultImplChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"}],\"name\":\"VaultImplProposed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"}],\"name\":\"deployVault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"num\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"vaultImpl\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposedImplActivationTimestamp\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImpl\",\"type\":\"address\"}],\"name\":\"upgradeImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgradeNoticeDuration\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgrader\",\"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/core/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultFactory.sol\":{\"keccak256\":\"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a\",\"urls\":[\"bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668\",\"dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"upgrader_","type":"address"},{"internalType":"address","name":"vaultImpl_","type":"address"},{"internalType":"uint32","name":"upgradeNoticeDuration_","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"event","name":"Killed","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false}],"type":"event","name":"VaultImplChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"impl","type":"address","indexed":false},{"internalType":"uint32","name":"activationTime","type":"uint32","indexed":false}],"type":"event","name":"VaultImplProposed","anonymous":false},{"inputs":[{"internalType":"uint8","name":"num","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint8","name":"num","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"deployVault","outputs":[{"internalType":"contract IVault","name":"vault","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"parameters","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint8","name":"num","type":"uint8"},{"internalType":"address","name":"vaultImpl","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposedImplActivationTimestamp","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeImplementation"},{"inputs":[],"stateMutability":"view","type":"function","name":"upgradeNoticeDuration","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"upgrader","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/VaultFactory.sol":"VaultFactory"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultFactory.sol":{"keccak256":"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a","urls":["bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668","dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null}},"version":1},"id":68} \ No newline at end of file diff --git a/deployment/arb1/out/VaultImpl.sol/ArbitrumVaultImpl.json b/deployment/arb1/out/VaultImpl.sol/ArbitrumVaultImpl.json deleted file mode 100644 index 8b845f4..0000000 --- a/deployment/arb1/out/VaultImpl.sol/ArbitrumVaultImpl.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"router_","type":"address","internalType":"contract IRouter"},{"name":"feeManager_","type":"address","internalType":"contract IFeeManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelAllDexorders","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelDexorder","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"},{"name":"tranche_index","type":"uint8","internalType":"uint8"},{"name":"proof","type":"tuple","internalType":"struct PriceProof","components":[{"name":"proof","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFeeManager"}],"stateMutability":"view"},{"type":"function","name":"numSwapOrders","inputs":[],"outputs":[{"name":"num","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"orderCanceled","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"placeDexorder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placeDexorders","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"ocoMode","type":"uint8","internalType":"enum OcoMode"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placementFee","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"placementFee","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swapOrderStatus","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"status","type":"tuple","internalType":"struct SwapOrderStatus","components":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"},{"name":"canceled","type":"bool","internalType":"bool"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"ocoGroup","type":"uint64","internalType":"uint64"},{"name":"originalOrder","type":"uint64","internalType":"uint64"},{"name":"startPrice","type":"uint256","internalType":"uint256"},{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"trancheStatus","type":"tuple[]","internalType":"struct TrancheStatus[]","components":[{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"activationTime","type":"uint32","internalType":"uint32"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"}]}]}],"stateMutability":"view"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vaultImplDidChange","inputs":[{"name":"oldAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrapper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"DexorderCancelAll","inputs":[{"name":"cancelAllIndex","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"DexorderSwapCanceled","inputs":[{"name":"orderIndex","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"DexorderSwapFilled","inputs":[{"name":"orderIndex","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"trancheIndex","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fillFee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"nextExecutionTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"DexorderSwapPlaced","inputs":[{"name":"startOrderIndex","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"numOrders","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"orderFee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e03461010d57601f61548d38819003918201601f19168301916001600160401b0383118484101761011257808492604094855283398101031261010d578051906001600160a01b038216820361010d5760200151906001600160a01b038216820361010d57600160005560a0526080527382af49447d8a07e3bd95bd0d56f35241523fbab160c052604051615364908161012982396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea26469706673582212200d17806cf307b9f29ee88642c1c0dc336625673cc9f89d55e5bb38d44679e69764736f6c634300081a0033","sourceMap":"6326:182:69:-:0;;;;;;;;;;;;;-1:-1:-1;;6326:182:69;;;;-1:-1:-1;;;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6326:182:69;;;;;;;;;;-1:-1:-1;;;;;6326:182:69;;;;;;1857:1:28;-1:-1:-1;1857:1:28;1373:16:69;;1399:24;;965:42:65;1433:22:69;;6326:182;;;;;;;;1399:24;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1373:16;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1433:22;6326:182;;;;;;;;;;;;;;;;;-1:-1:-1;6326:182:69;;;;;;-1:-1:-1;6326:182:69;;;;;-1:-1:-1;6326:182:69","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea26469706673582212200d17806cf307b9f29ee88642c1c0dc336625673cc9f89d55e5bb38d44679e69764736f6c634300081a0033","sourceMap":"6326:182:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:42;6326:182;6282:6;6326:182;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;5994:5:69;6326:182;5994:5;6326:182;5978:40;5986:26;;;5978:40;:::i;:::-;6028:29;;;;;6326:182;;;;;6028:29;;;;6326:182;6028:29;;6326:182;;6028:29;;;;;;;;;6326:182;1899:1:28;6326:182:69;1899:1:28;;6326:182:69;;6028:29;;;;;:::i;:::-;6326:182;;6028:29;;;;6326:182;;;6028:29;6326:182;;;;;;;;;6028:29;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:42;6326:182;6282:6;6326:182;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;6160:5:69;6326:182;6160:5;6326:182;6144:40;6152:26;;;6144:40;:::i;:::-;6194:22;;;;;6326:182;;;6194:22;6326:182;;6194:22;;;;6326:182;6194:22;;6326:182;;;6194:22;;6326:182;6194:22;;;;;;;;6326:182;;1899:1:28;;6326:182:69;;6194:22;;;;:::i;:::-;;;;;;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6260:42;6326:182;6282:6;6326:182;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;6326:182:69;;;2889:17;;;:10;6326:182;2889:10;6326:182;2889:10;6326:182;2889:17;;;;;;;;;;;6326:182;2953:36;;;;;:::i;:::-;6268:10;;;3268:6;6268:10;;;3268:6;:::i;:::-;6326:182;3389:20;6326:182;;;;3389:20;;6326:182;;3411:6;;6326:182;;;;;;;;;;:::i;:::-;3440:1:61;6326:182:69;;;;;;;;;;;;3452:20:61;;;;;:::i;:::-;;;;;:::i;:::-;;3760:50;6326:182:69;;;3768:34:61;3760:50;:::i;:::-;6326:182:69;;;3845:72:61;3874:35;6326:182:69;;3874:35:61;:::i;:::-;3853:56;;3845:72;:::i;:::-;6326:182:69;3983:15:61;6326:182:69;4551:11:61;;4586:3;6326:182:69;;;;;4564:20:61;;;;;;4631:12;;;;:::i;:::-;;4665:20;:11;;;;:20;:::i;:::-;6282:6:69;6326:182;;;;;3440:1:61;4665:42;6326:182:69;;5445:22:61;;;6326:182:69;5445:22:61;;;6326:182:69;;;;5445:46:61;;;5441:1493;;4586:3;6947:81;;;6326:182:69;6947:81:61;;;;;3312:11:69;6947:81:61;:::i;:::-;;6326:182:69;;;;;;3440:1:61;6326:182:69;4551:11:61;;6326:182:69;;;;;;;;;;5441:1493:61;5528:58;;;;;;;;;;:::i;:::-;6326:182:69;;;;;;;;;-1:-1:-1;6326:182:69;;;6203:20:61;;6326:182:69;6203:20:61;:::i;:::-;6416:14;;6326:182:69;;6416:14:61;;6326:182:69;;;;;;6416:37:61;:136;;;;5441:1493;6416:240;;;5441:1493;6416:419;;;5441:1493;6326:182:69;;;;;5441:1493:61;;;;;;;;6326:182:69;;;;;;;;;;;;3312:11;6326:182;;;;;;;;;;6416:419:61;6783:28;;;;;6326:182:69;;;;6783:52:61;6416:419;;;;:240;3312:11:69;6633:18:61;;6326:182:69;6633:23:61;;-1:-1:-1;6416:240:61;;:136;6527:25;;;6326:182:69;;;;-1:-1:-1;6416:136:61;;6326:182:69;;;;;;;;;;;;3312:11;6326:182;;;;;;;;;;;;;;;;;;;;;;6282:6;6326:182;;;;;;;;;;;;;;;;;;;;4564:20:61;;;3433:51:69;6326:182;4564:20:61;;;6326:182:69;;;3440:1:61;6326:182:69;;;;;;;;;3433:51;3440:1:61;1899::28;;6326:182:69;;;;;;;:::i;:::-;;;;;;;;;;2889:17;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1171:39;6326:182;;;;;;;;;;;;;;;;;;;;5891:5;6326:182;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;5632:38;6326:182;;;5695:45;6326:182;5695:45;;:::i;:::-;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;6260:42;6326:182;6282:6;6326:182;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;6326:182:69;;3738:17;6326:182;3738:17;;;:10;6326:182;3738:10;6326:182;3738:10;6326:182;3738:17;;;;;;;;;;;6326:182;3802:27;;;;;:::i;:::-;6268:10;;;3879:6;6268:10;;;3879:6;:::i;:::-;6326:182;4002:20;6326:182;;;;4002:20;;6326:182;;4033:6;;6326:182;3760:50:61;6326:182:69;;;3768:34:61;3760:50;:::i;:::-;6326:182:69;;;3845:72:61;3874:35;6326:182:69;;3874:35:61;:::i;3845:72::-;6326:182:69;;4012:25:61;;;4052:23;6326:182:69;4008:367:61;;4551:11;4586:3;6326:182:69;;;;;4564:20:61;;;;;;4631:12;;;;:::i;:::-;;4665:11;:20;6326:182:69;4665:11:61;;;:20;:::i;:::-;6282:6:69;6326:182;;;;;3853:11:61;4665:42;6326:182:69;;5445:22:61;;;6326:182:69;5445:22:61;;6326:182:69;;;;;5445:46:61;;5441:1493;;4586:3;6947:81;;;;;;6326:182:69;6947:81:61;6326:182:69;6947:81:61;:::i;:::-;;6326:182:69;;;;;;3853:11:61;6326:182:69;4551:11:61;;6326:182:69;;;;;;;;;;5441:1493:61;5528:58;;;;;;;;;:::i;:::-;6326:182:69;;;;;;;;;-1:-1:-1;6326:182:69;;;6203:20:61;;6326:182:69;6203:20:61;:::i;:::-;6416:14;6326:182:69;;6416:14:61;;6326:182:69;;;;;;6416:37:61;:136;;;;5441:1493;6416:240;;;5441:1493;6416:419;;;5441:1493;6326:182:69;;;;5441:1493:61;;;;;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;6416:419:61;6326:182:69;6783:28:61;;;;;;6326:182:69;;;;6783:52:61;6416:419;;;:240;6326:182:69;6633:18:61;;6326:182:69;6633:23:61;;-1:-1:-1;6416:240:61;;:136;6527:25;;;6326:182:69;;;;-1:-1:-1;6416:136:61;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6282:6;6326:182;;;;;;;;;;;;;;;;;;;;4564:20:61;;;4055:70:69;6326:182;4564:20:61;;6326:182:69;4564:20:61;6326:182:69;;;;;;;;;;;;;;;;4055:70;3853:11:61;1899:1:28;;6326:182:69;;4008:367:61;268:16:62;;3853:11:61;4095:41;;:84;;;;4008:367;4090:285;;;4213:14;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;268:16:62;;6326:182:69;;;4269:54:61;;6326:182:69;;;;;4269:54:61;;6326:182:69;;;;;;;;;;3853:11:61;6326:182:69;;;4213:14:61;6326:182:69;4213:14:61;6326:182:69;:::i;:::-;;;;;;;268:16:62;6326:182:69;268:16:62;;;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4008:367:61;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4090:285:61;4361:14;6326:182:69;;4361:14:61;;;6326:182:69;;4361:14:61;;6326:182:69;;;;;;;;;;;4361:14:61;4095:84;268:16:62;;;6282:6:69;4140:39:61;;4095:84;;3738:17:69;;;;;;;;;;;;;;;:::i;:::-;;;;;;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;18642:32:61;6326:182:69;;;:::i;:::-;6260:42;6326:182;6282:6;6326:182;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;18588:32:61;:23;;6326:182:69;18588:23:61;:::i;:::-;:32;;6326:182:69;;;;;;;;;;;;;;;18642:32:61;18623:4;1899:1:28;;6326:182:69;;;;;;;;;;;;;;4883:30;6326:182;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4883:30;:::i;:::-;6326:182;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6326:182:69;;;;;;;;-1:-1:-1;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:103:28;;:::i;:::-;6326:182:69;;;5156:13;;6326:182;5080:4;6326:182;5080:4;;5156:13;;;;;;;;;;;6326:182;10361:23:61;;;;:::i;:::-;10398:29;;;;;:::i;:::-;10394:59;;10501:21;;;6326:182:69;;;;;;;;;;;;10578:34:61;:20;;;;:34;:::i;:::-;6326:182:69;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10762:15:61;;6326:182:69;;;;;;10744:15:61;:33;6326:182:69;;;;;;;;10744:15:61;10816:36;6326:182:69;;;;10744:15:61;10892:41;6326:182:69;;5196:11;6326:182;;;;;;;;;;11068:58:61;;;6326:182:69;11064:2260:61;;;11231:18;;;6326:182:69;;;;;;;;11298:21:61;;6326:182:69;;;11209:135:61;6326:182:69;;11209:135:61;;;;;6326:182:69;11209:135:61;;6326:182:69;;;;;;;;;11209:135:61;;;:::i;:::-;;5250:6:69;6326:182;5250:6;6326:182;11209:135:61;;;;;;;;;;;11064:2260;6326:182:69;11450:37:61;6326:182:69;;5196:11;6326:182;;;;11450:15:61;6326:182:69;;11450:37:61;:::i;:::-;6326:182:69;;;;;11529:5:61;6326:182:69;;;;;;;;11529:5:61;6326:182:69;11529:5:61;6326:182:69;;;13864:35:61;6326:182:69;;11512:41:61;6326:182:69;11529:5:61;6326:182:69;;;;11512:41:61;:::i;:::-;6326:182:69;;;;11064:2260:61;6326:182:69;5196:11;13376:19:61;;6326:182:69;;13484:32:61;6326:182:69;;13376:38:61;6326:182:69;;;13376:38:61;;:::i;:::-;:53;6326:182:69;;;;;;;;;13484:32:61;;:::i;:::-;6326:182:69;;;;;;;13553:30:61;13549:258;;11064:2260;13886:13;;;;6326:182:69;13864:35:61;;:::i;:::-;6326:182:69;;;;;;;;;;13913:22:61;13909:117;;11064:2260;6326:182:69;;;;;14057:26:61;6326:182:69;14057:26:61;;6326:182:69;14045:38:61;;;317:16:62;;14121:34:61;;;;;;;6326:182:69;14121:58:61;6326:182:69;;;;;14121:58:61;6326:182:69;;;14121:58:61;6326:182:69;;14214:21:61;;6326:182:69;;14410:93:61;;;6326:182:69;;;;;;14410:53:61;:93;6326:182:69;;;;14410:93:61;;;;6326:182:69;;;;;;;15233:18:61;6326:182:69;;;;;;;;15233:18:61;;6326:182:69;;;;;;;;:::i;:::-;;;;15046:210:61;;6326:182:69;;;15046:210:61;;6326:182:69;;15046:210:61;;6326:182:69;;15046:210:61;;6326:182:69;;;;;15046:210:61;;6326:182:69;;15046:210:61;;6326:182:69;;;;;;;15046:210:61;;6326:182:69;;;;;15370:86:61;317:16:62;6326:182:69;15370:86:61;;;15393:21;15370:86;;6326:182:69;;15370:86:61;;6326:182:69;;317:16:62;:::i;:::-;6326:182:69;317:16:62;;6326:182:69;;317:16:62;;6326:182:69;;;15046:210:61;;317:16:62;6326:182:69;317:16:62;;;6326:182:69;;;15046:210:61;;317:16:62;6326:182:69;317:16:62;;;6326:182:69;;15046:210:61;;317:16:62;;;;6326:182:69;;15046:210:61;;317:16:62;;;;6326:182:69;;15046:210:61;;317:16:62;6326:182:69;;317:16:62;;;6326:182:69;;15046:210:61;;317:16:62;;;;6326:182:69;15046:210:61;317:16:62;6326:182:69;317:16:62;;;6326:182:69;317:16:62;15370:86:61;;;;;;:::i;:::-;15328:138;5250:6:69;6326:182;5250:6;6326:182;15328:138:61;;;317:16:62;;;;;;6326:182:69;317:16:62;;;;6326:182:69;;;;;;;;;;317:16:62;6326:182:69;;:::i;:::-;317:16:62;;;;6326:182:69;317:16:62;;;;15480:8:61;15476:319;;6326:182:69;;;;15864:38:61;;317:16:62;;;;6326:182:69;;15864:38:61;;6326:182:69;317:16:62;;6326:182:69;;;;;;;;14121:34:61;;;6326:182:69;;15957:51:61;;;;16018:25;15957:51;;6326:182:69;;;;;13886:13:61;;;6326:182:69;16018:25:61;:::i;:::-;13886:13;;;1899:1:28;16053:26:61;6326:182:69;;;;;;16053:26:61;:::i;:::-;1899:1:28;;6326:182:69;;;;16126:238:61;;15957:51;16423:21;16447:6;16411:33;6326:182:69;16423:21:61;;;6326:182:69;;16411:33:61;;:::i;:::-;6326:182:69;;;;;;;;16481:27:61;;6326:182:69;5258:10;6326:182;5258:10;6326:182;5258:10;6326:182;16481:27:61;;;;;;;;;;;15957:51;6326:182:69;;;;;;;;16463:57:61;6326:182:69;16463:57:61;;6326:182:69;;16463:57:61;;6326:182:69;;317:16:62;;6326:182:69;;16463:57:61;6326:182:69;16463:57:61;;;;;;;;;;;15957:51;6326:182:69;;16536:114:61;6326:182:69;;;;;;;;;;;;;;;10762:15:61;;6326:182:69;;;;;;;;;317:16:62;;6326:182:69;;317:16:62;;6326:182:69;;317:16:62;;6326:182:69;;;;16536:114:61;;14121:34;;;6326:182:69;;;;;;16805:53:61;6326:182:69;16805:53:61;;16801:721;;15957:51;13376:19;;;6326:182:69;13376:19:61;;;17604:35;5196:11:69;16423:21:61;13376:19;;6326:182:69;13886:13:61;;;6326:182:69;17604:35:61;;:::i;:::-;6326:182:69;14057:26:61;;6326:182:69;-1:-1:-1;6326:182:69;;;16423:21:61;6326:182:69;;;;;17819:31:61;;17815:86;;17649:434;;6326:182:69;1899:1:28;;6326:182:69;;17815:86:61;17885:15;;;:::i;:::-;17815:86;;;17649:434;16423:21;6326:182:69;;;;;17930:31:61;;;:105;;;17649:434;17926:157;;17649:434;;;;17926:157;18067:15;;;:::i;:::-;17926:157;;;17930:105;17965:31;14121:34;6326:182:69;268:16:62;;;;;14121:34:61;6326:182:69;;;268:16:62;;;6326:182:69;;5196:11;268:16:62;;;;;6326:182:69;17965:70:61;17930:105;;268:16:62;6326:182:69;;;;;;;;;268:16:62;6326:182:69;;;;;;;;;16801:721:61;6326:182:69;139:16:62;17005:42:61;6326:182:69;17005:42:61;;;;;:::i;:::-;139:16:62;;:::i;:::-;6326:182:69;;;17200:33:61;;;;6326:182:69;17200:33:61;;5080:4:69;6326:182;17200:33:61;;6326:182:69;17200:33:61;;;;;;;;;;16801:721;17200:59;;;;:::i;:::-;17185:12;6326:182:69;17185:12:61;;6326:182:69;;;;16423:21:61;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8523:23:61;;;;6326:182:69;8523:23:61;:::i;:::-;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15233:18:61;6326:182:69;;;;;;;;;15233:18:61;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;5196:11;6326:182;;1899:1:28;6326:182:69;;;;;;;1899:1:28;14121:34:61;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10501:21:61;6326:182:69;;;;10501:21:61;6326:182:69;;;;;;;;16801:721:61;6326:182:69;;;10501:21:61;6326:182:69;;;;;;;;;;;;;;;8586:21:61;;;;6326:182:69;;16423:21:61;8586;;6326:182:69;;;;;;;;;;;;;;;;;10744:15:61;6326:182:69;;;;;;;;;8795:27:61;8837:8;;8872:3;6326:182:69;;;8849:14:61;6326:182:69;;8847:23:61;;;;;8917:17;;;;:::i;:::-;;6326:182:69;8992:20:61;;6326:182:69;;;;8992:44:61;;;8872:3;8988:79;;10578:20;9102;;6326:182:69;;;;;;;;;;;;10578:20:61;9102;;6326:182:69;10578:20:61;9102;;6326:182:69;:::i;:::-;9102:20:61;;9170:23;9102:20;10578;9102;;9170:23;:::i;:::-;-1:-1:-1;6326:182:69;7784:27:61;;6326:182:69;;7784:78:61;;7757:106;6326:182:69;7814:29:61;6326:182:69;;7826:17:61;;6326:182:69;;;10744:15:61;6326:182:69;7814:29:61;:::i;:::-;7784:78;;7757:23;:106;;6326:182:69;;;;;;;;;;;;;;;7757:106:61;6326:182:69;7898:25:61;;6326:182:69;;7898:72:61;;6326:182:69;7938:15:61;7926:27;7938:15;6326:182:69;7938:15:61;;6326:182:69;;10744:15:61;;6326:182:69;7926:27:61;:::i;:::-;6326:182:69;;;;;;;;;;;;;;;;;;317:16:62;;;;;;;6326:182:69;9222:18:61;;6326:182:69;;;;;9222:40:61;;;7898:72;9218:83;;;7898:72;6326:182:69;;8837:8:61;;9218:83;6326:182:69;;-1:-1:-1;9218:83:61;;9222:40;6326:182:69;9244:18:61;;;6326:182:69;;;9222:40:61;;;7898:72;6326:182:69;7955:15:61;;6326:182:69;7955:15:61;;6326:182:69;;7898:72:61;;7784:78;7757:106;6326:182:69;;;7845:17:61;;6326:182:69;;7784:78:61;;;6326:182:69;;;;;;;;;;8988:79:61;317:16:62;6326:182:69;;9055:12:61;;;6326:182:69;;9055:12:61;;6326:182:69;15233:18:61;6326:182:69;;;;;;;;;9055:12:61;8992:44;9016:20;6326:182:69;9016:20:61;;6326:182:69;;;8992:44:61;;8847:23;;;;;;;9469:143;;8832:592;6326:182:69;;16423:21:61;6326:182:69;;;17454:44:61;6326:182:69;;;;;;268:16:62;6326:182:69;268:16:62;;6326:182:69;268:16:62;6326:182:69;268:16:62;;6326:182:69;17454:44:61;16801:721;;;;;9469:143;6326:182:69;9543:20:61;6326:182:69;;;9543:11:61;:20;:::i;:::-;6326:182:69;;;;;9521:91:61;6326:182:69;;;;;;;;;;;9596:11:61;:15;6326:182:69;;;;9521:91:61;;;;;6326:182:69;9521:91:61;;6326:182:69;9521:91:61;;;:::i;:::-;;5250:6:69;6326:182;5250:6;6326:182;9521:91:61;;;;;;;;;;;9469:143;-1:-1:-1;6326:182:69;9501:17:61;1899:1:28;9501:17:61;6326:182:69;9469:143:61;;9521:91;;;;;6326:182:69;9521:91:61;;6326:182:69;9521:91:61;;;;;;6326:182:69;9521:91:61;;;:::i;:::-;;;6326:182:69;;;;;;9521:91:61;;;;6326:182:69;;9521:91:61;;6326:182:69;;;;9521:91:61;;;-1:-1:-1;9521:91:61;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:16:62;;;;;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;15233:18:61;6326:182:69;;317:16:62;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5196:11;6326:182;;;;;;;;;5196:11;6326:182;;;;;;;;5196:11;6326:182;;;;;;;;10501:21:61;6326:182:69;;;;;;;;5196:11;6326:182;;;;;5196:11;6326:182;;;;;;;;;;;;;;5196:11;6326:182;;;;;;;;15233:18:61;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;17200:33:61;;6326:182:69;17200:33:61;;6326:182:69;17200:33:61;;;;;;6326:182:69;17200:33:61;;;:::i;:::-;;;6326:182:69;;;;17200:59:61;6326:182:69;;17200:33:61;;6326:182:69;;;;17200:33:61;;;-1:-1:-1;17200:33:61;;;6326:182:69;;;;;;;;;16463:57:61;6326:182:69;16463:57:61;;6326:182:69;16463:57:61;;;;;;6326:182:69;16463:57:61;;;:::i;:::-;;;317:16:62;;;;;6326:182:69;;;;;;;-1:-1:-1;6326:182:69;16463:57:61;;6326:182:69;;;;16463:57:61;;;-1:-1:-1;16463:57:61;;;6326:182:69;;;;;;;;;16481:27:61;;;;6326:182:69;16481:27:61;6326:182:69;16481:27:61;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;16126:238;6326:182:69;16281:70:61;16299:52;:34;6326:182:69;;;;;;;;5196:11;6326:182;;;;;;;16299:34:61;;:::i;:::-;6326:182:69;;;;16299:52:61;;:::i;:::-;10744:15;16281:70;:::i;:::-;6326:182:69;;317:16:62;6326:182:69;10762:15:61;;317:16:62;;;6326:182:69;10762:15:61;;317:16:62;16126:238:61;;;15957:51;;16018:25;15957:51;;;15476:319;6326:182:69;;;;15508:17:61;;;;15588:140;6326:182:69;15588:140:61;;317:16:62;6326:182:69;;;;;;;;;317:16:62;6326:182:69;317:16:62;;;14410:93:61;6326:182:69;;;;;;;14470:33:61;6326:182:69;14470:33:61;;5080:4:69;6326:182;14470:33:61;;6326:182:69;;14470:33:61;6326:182:69;14470:33:61;;;;;;;;;;;;;;;;;;;14410:93;;;6326:182:69;14410:93:61;;;;14470:33;;;;;;;6326:182:69;14470:33:61;;6326:182:69;14470:33:61;;;;;;6326:182:69;14470:33:61;;;:::i;:::-;;;6326:182:69;;;;;;;;;;;14470:33:61;;;;6326:182:69;;;;14470:33:61;;;-1:-1:-1;14470:33:61;;14121:58;5080:4:69;;14121:58:61;;317:16:62;;6326:182:69;;317:16:62;;;6326:182:69;;317:16:62;;;;6326:182:69;317:16:62;;6326:182:69;317:16:62;6326:182:69;;;317:16:62;;13909:117:61;6326:182:69;;;;13909:117:61;;;13549:258;13650:43;6326:182:69;;;;;;13650:43:61;:::i;:::-;6326:182:69;;;;;;;;;;;13726:26:61;13722:74;13549:258;13722:74;6326:182:69;;;;13722:74:61;13549:258;;11209:135;;;6326:182:69;11209:135:61;;6326:182:69;11209:135:61;;;;;;6326:182:69;11209:135:61;;;:::i;:::-;;;6326:182:69;;;;;11209:135:61;;;;;;-1:-1:-1;11209:135:61;;11064:2260;6326:182:69;;;11802:27:61;6326:182:69;5196:11;6326:182;;;;11802:15:61;:27;:::i;:::-;11798:638;;11064:2260;12483:27;:15;5196:11:69;6326:182;;;;12483:15:61;:27;:::i;:::-;12479:835;;11064:2260;13864:35;11064:2260;;;12479:835;6326:182:69;;12609:12:61;12605:357;;12479:835;6326:182:69;;;;;12998:153:61;6326:182:69;;;13039:63:61;6326:182:69;13066:16:61;;;6326:182:69;;;;13084:17:61;;;6326:182:69;;12483:15:61;5196:11:69;6326:182;;;;12483:15:61;13039:63;:::i;:::-;6326:182:69;;13272:19:61;6326:182:69;12479:835:61;6326:182:69;;;;;;;;;;;;12483:15:61;6326:182:69;;;;;;;;;;12998:153:61;13125:26;12483:15;5196:11:69;6326:182;;;;12483:15:61;13125:26;:::i;:::-;12998:153;;12605:357;12483:15;12730:18;;6326:182:69;;;;;;;;12805:21:61;;6326:182:69;;;12714:137:61;6326:182:69;;12714:137:61;;;;;6326:182:69;12714:137:61;;6326:182:69;;;;;;;;;12714:137:61;;;:::i;:::-;;5250:6:69;6326:182;5250:6;6326:182;12714:137:61;;;;;;;;;;;12605:357;6326:182:69;;;12605:357:61;;12714:137;;;6326:182:69;12714:137:61;;6326:182:69;12714:137:61;;;;;;6326:182:69;12714:137:61;;;:::i;:::-;;;6326:182:69;;;;;12714:137:61;;;;;;-1:-1:-1;12714:137:61;;11798:638;11876:18;;;6326:182:69;;;;;;;;11947:21:61;;6326:182:69;;;11860:133:61;6326:182:69;;11860:133:61;;;;;6326:182:69;11860:133:61;;6326:182:69;;;;;;;;;11860:133:61;;;:::i;:::-;;5250:6:69;6326:182;5250:6;6326:182;11860:133:61;;;;;;;;;;;11798:638;6326:182:69;;;;;;;;12105:153:61;6326:182:69;;;12146:63:61;6326:182:69;12173:16:61;;;6326:182:69;;;;;12191:17:61;;6326:182:69;;;5196:11;6326:182;;;;11802:15:61;12146:63;:::i;:::-;6326:182:69;;;;;;;12396:17:61;11798:638;6326:182:69;;;;;;;;;;;;11876:18:61;6326:182:69;;;;;;;;;;12105:153:61;12232:26;6326:182:69;5196:11;6326:182;;;;11802:15:61;12232:26;:::i;:::-;12105:153;;11860:133;;;6326:182:69;11860:133:61;;6326:182:69;11860:133:61;;;;;;6326:182:69;11860:133:61;;;:::i;:::-;;;6326:182:69;;;;;11860:133:61;;;;;;-1:-1:-1;11860:133:61;;11068:58;6326:182:69;;;5196:11;6326:182;;;;11092:15:61;6326:182:69;;2397:20:59;11091:35:61;11068:58;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10394:59:61;10441:12;6326:182:69;;10441:12:61;;;6326:182:69;;10441:12:61;;6326:182:69;;;;;;;;;;;10441:12:61;5156:13:69;;;6326:182;5156:13;;6326:182;5156:13;;;;;;6326:182;5156:13;;;:::i;:::-;;;6326:182;;;;;;;;;;;;5156:13;;;;;;-1:-1:-1;5156:13:69;;6326:182;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1163:1;6326:182;;;;;;;;;;;;;;;;;;;;;;;;1751:26;6326:182;;;;;;:::i;:::-;;;;:::i;:::-;1751:26;;:::i;:::-;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;6260:42;6326:182;6282:6;6326:182;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;18871:38:61;6326:182:69;;;;;;;5517:11;6326:182;;;5517:11;6326:182;;;;;;18871:38:61;18837:11;1899:1:28;;6326:182:69;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;6326:182:69;;;;;-1:-1:-1;6326:182:69;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;-1:-1:-1;6326:182:69;;;;;-1:-1:-1;6326:182:69;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;2318:387;2485:1;;2318:387;2485:1;;;2548:3;6326:182;;2531:15;;;;;2674:14;6326:182;2613:9;2644:16;2599:31;2613:9;;;;;:::i;:::-;;2599:31;:::i;:::-;2644:16;;:::i;:::-;2674:14;;:::i;:::-;2548:3;6326:182;2521:8;;;;2531:15;;;;;;;2318:387::o;6326:182::-;;;;;;;:::i;:::-;;;;-1:-1:-1;6326:182:69;;-1:-1:-1;6326:182:69;;;;;;;;;:::i;:::-;-1:-1:-1;6326:182:69;;-1:-1:-1;6326:182:69;;;;;;;;-1:-1:-1;6326:182:69;;;;-1:-1:-1;6326:182:69;;;;-1:-1:-1;6326:182:69;;;;-1:-1:-1;6326:182:69;;;;-1:-1:-1;6326:182:69;;;;;;:::o;:::-;10361:11:61;6326:182:69;;;;;;10361:11:61;-1:-1:-1;6326:182:69;;;-1:-1:-1;6326:182:69;;;;;-1:-1:-1;6326:182:69;:::o;:::-;;;;;;;;-1:-1:-1;6326:182:69;;;-1:-1:-1;6326:182:69;;;;;-1:-1:-1;6326:182:69;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6326:182:69;;-1:-1:-1;6326:182:69;-1:-1:-1;6326:182:69;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;2575:307:28;1899:1;2702:7;6326:182:69;2702:18:28;2698:86;;1899:1;2702:7;1899:1;2575:307::o;2698:86::-;2743:30;2702:7;2743:30;;2702:7;2743:30;1790:522:69;1950:22;;;6326:182;;;;;;1950:46;1946:107;;139:16:62;2208:30:69;2083:90;2261:43;6326:182;;;2122:18;6326:182;;;;;2083:90;;:::i;:::-;2208:30;:::i;139:16:62:-;2261:43:69;;:::i;:::-;2254:50;;1790:522::o;1946:107::-;2017:36;;;;;:::i;6326:182::-;;;;;;;;-1:-1:-1;6326:182:69;;-1:-1:-1;6326:182:69;;;;;;-1:-1:-1;6326:182:69;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;317:16:62;6326:182:69;317:16:62;;6326:182:69;317:16:62;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;6326:182:69;;;;;;;317:16:62;:::o;268:::-;6326:182:69;;268:16:62;;;;;-1:-1:-1;6326:182:69;;-1:-1:-1;6326:182:69;268:16:62;;-1:-1:-1;268:16:62;:::o;4180:582:69:-;;4299:17;;;;:::i;:::-;4286:9;:30;6326:182;;4338:12;;;;4334:77;;4180:582;4425:10;;;;;4421:71;;4180:582;4521:17;;;;:::i;:::-;4286:9;4552:20;;4548:208;;4180:582;;:::o;4548:208::-;-1:-1:-1;4286:9:69;;;4605:20;4286:9;;;4605:20;:::i;:::-;4722:23;;;;;;;4548:208;6326:182;;4722:23;;;;;4180:582::o;4722:23::-;6326:182;;;-1:-1:-1;6326:182:69;;;;;4722:23;;;-1:-1:-1;4722:23:69;;4421:71;6326:182;;;4449:26;;;:10;:26;:10;6326:182;4449:10;6326:182;4449:26;;;;;;;-1:-1:-1;4449:26:69;;;;;;;;;;;;;4421:71;4449:43;;;;;4421:71;6326:182;;4449:43;;;;;4421:71;;;4449:43;;;-1:-1:-1;4449:43:69;;:26;;;;;;;;;;;;;;:::i;:::-;;;;4334:77;6326:182;;;4364:28;;;:10;:28;:10;6326:182;4364:10;6326:182;4364:28;;;;;;;-1:-1:-1;4364:28:69;;;;;;;;;;;;;4334:77;4364:47;;;;;4334:77;6326:182;;4364:47;;;;;4334:77;;;4364:47;;;-1:-1:-1;4364:47:69;;:28;;;;;;;;;;;;;;:::i;:::-;;;;6326:182;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18922:185:61:-;6326:182:69;5196:11;6326:182;;;;;19032:32:61;:68;;;;;19025:75;18922:185;:::o;19032:68::-;6326:182:69;19068:23:61;;;:32;:23;:11;:23;:::i;:::-;:32;;6326:182:69;;;;18922:185:61;:::o;1004:867::-;;;1364:12;;;6326:182:69;1364:15:61;1360:45;;1675:16;2214:21;1675:16;2214:63;1675:16;6326:182:69;2028:14:61;6326:182:69;;;;2028:14:61;;6326:182:69;;;1878:171:61;;1675:16;2214:21;;:::i;:::-;2247:12;6326:182:69;1364:12:61;2247;;;;6326:182:69;;2264:12:61;;6326:182:69;;;2214:63:61;;:::i;:::-;1004:867;:::o;1360:45::-;-1:-1:-1;;;;;;1393:12:61:o;7205:420::-;7530:1;;210:7:62;7482:44:61;;210:7:62;;7482:136:61;;7205:420;:::o;7482:136::-;6326:182:69;210:7:62;7556:52:61;6326:182:69;7160:38:61;;6326:182:69;7160:38:61;;;;7556:62;;7205:420;:::o;7160:38::-;6326:182:69;;;;;;;;;540:457:61;;;;;816:12;;;6326:182:69;816:15:61;812:45;;878:16;2620:21;2578:17;2507:38;878:16;;2620:36;878:16;6326:182:69;2028:14:61;6326:182:69;;;;2028:14:61;;6326:182:69;;;1878:171:61;;878:16;2507:38;;:::i;:::-;2578:17;;:::i;:::-;2620:21;;:::i;:::-;:36;:::i;812:45::-;845:12;;;;-1:-1:-1;845:12:61;-1:-1:-1;845:12:61;:::o;252:130:60:-;6326:182:69;;;;2397:20:59;333:21:60;;;:42;;;326:49;252:130;:::o;333:42::-;6326:182:69;;;;;;2397:20:59;358:17:60;252:130;:::o;430:307::-;6326:182:69;;527:23:60;6326:182:69;;;527:23:60;:::i;:::-;6326:182:69;;;;2397:20:59;;560:50:60;;631:19;;712:18;631:19;;:::i;:::-;678:15;;712:18;;:::i;560:50::-;593:17;;:::o;6326:182:69:-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;839:794:60:-;6326:182:69;839:794:60;;6326:182:69;1203:19:60;6326:182:69;980:23:60;6326:182:69;;;980:23:60;:::i;:::-;6326:182:69;;;;1203:19:60;:::i;:::-;6326:182:69;;;;1281:5:60;;;;;:::i;:::-;6326:182:69;-1:-1:-1;6326:182:69;;;;;;;;;;;;;;;;;;;;1479:5:60;1467:9;;;;:::i;:::-;6326:182:69;;-1:-1:-1;6326:182:69;;;;;;;;;;;;;;;;;;;1608:18:60;;;:::i;884:1196:59:-;801:20;1108:25;;:30;1104:44;;691:11;1213:24;;6326:182:69;;1242:2:59;801:20;6326:182:69;;;1263:11:59;;516:4;;636:11;746;1342:25;;6326:182:69;;1382:15:59;;;1408:1;6326:182:69;1378:57:59;;1501:25;1497:48;;1378:57;469:3;;6326:182:69;;469:3:59;;6326:182:69;;;1843:9:59;;1839:205;6326:182:69;;;;636:11:59;6326:182:69;884:1196:59;:::o;1839:205::-;6326:182:69;1942:9:59;;6326:182:69;;;801:20:59;884:1196;:::o;1497:48::-;6326:182:69;636:11:59;;;;;1497:48;;1378:57;865:11;1424;1378:57;;;516:4;;6326:182:69;;516:4:59;;;;;;;;6326:182:69;516:4:59;;;6326:182:69;516:4:59;6326:182:69;;;516:4:59;;1104:44;1140:8;6326:182:69;1140:8:59;:::o;8048:1571:61:-;8398:11;;6326:182:69;;8048:1571:61;;8352:15;6326:182:69;;;8048:1571:61;;;6326:182:69;;;;8398:11:61;6326:182:69;;;;;;8523:23:61;6326:182:69;;;8398:11:61;6326:182:69;;;;;;;:::i;:::-;8523:23:61;;;:::i;:::-;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1899:1:28;6326:182:69;;;;;;;1899:1:28;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8048:1571:61;6326:182:69;;;;;;;;;;;;;;;;;;;;;8586:21:61;;;;6326:182:69;8586:21:61;6326:182:69;;8586:21:61;;;6326:182:69;;;;;;;;;;;;8352:15:61;6326:182:69;;;;;;;;;;;;8795:27:61;8837:8;;9102:20;;;;8832:592;8872:3;8849:14;;6326:182:69;;8847:23:61;;;;;8917:17;;;;:::i;:::-;;6326:182:69;8992:20:61;;6326:182:69;;;;8992:44:61;;;8872:3;8988:79;;6326:182:69;;;;;;;;;;;;8398:11:61;9170:23;6326:182:69;;;;;;:::i;:::-;9170:23:61;;;:::i;:::-;-1:-1:-1;6326:182:69;7784:27:61;;6326:182:69;7784:27:61;;6326:182:69;7784:78:61;;8398:11;7814:29;7757:106;7826:17;6326:182:69;;7826:17:61;;6326:182:69;;7814:29:61;;:::i;7757:106::-;6326:182:69;7898:25:61;;6326:182:69;7898:25:61;;6326:182:69;7898:72:61;;6326:182:69;7926:27:61;7938:15;;;6326:182:69;7938:15:61;;6326:182:69;;7926:27:61;;:::i;:::-;6326:182:69;;;;;;;;;;;;;;;;;;317:16:62;;;;;;;6326:182:69;9222:18:61;;6326:182:69;;;;;9222:40:61;;;7898:72;9218:83;;;7898:72;8398:11;6326:182:69;8837:8:61;;9218:83;8398:11;;-1:-1:-1;9218:83:61;;9222:40;6326:182:69;9244:18:61;;;6326:182:69;;;9222:40:61;;;7898:72;7955:15;6326:182:69;7955:15:61;;6326:182:69;7955:15:61;;6326:182:69;;7898:72:61;;7784:78;7845:17;7757:106;8398:11;6326:182:69;;7845:17:61;;6326:182:69;;7784:78:61;;;6326:182:69;;;;;;;;;;8992:44:61;9016:20;6326:182:69;9016:20:61;;6326:182:69;;;8992:44:61;;8847:23;;;;;;;;;;;;;;9469:143;;8832:592;8048:1571;;;;;;:::o;9469:143::-;6326:182:69;9543:11:61;6326:182:69;;9543:11:61;;;:20;:11;;:20;:::i;:::-;6326:182:69;;;;;;9596:11:61;;:15;6326:182:69;;;9521:91:61;6326:182:69;;9521:91:61;;;;;;;6326:182:69;9521:91:61;;6326:182:69;9521:91:61;;;:::i;:::-;;6326:182:69;;9521:91:61;;;;;;;;;;;9469:143;9501:17;;6326:182:69;9501:17:61;1899:1:28;9469:143:61;;;;;;;;9521:91;;;;;6326:182:69;9521:91:61;;6326:182:69;9521:91:61;;;;;;6326:182:69;9521:91:61;;;:::i;:::-;;;6326:182:69;;;;-1:-1:-1;6326:182:69;;;9521:91:61;;;;;;-1:-1:-1;9521:91:61;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;6326:182:69;;;;;;;;;;;;317:16:62;;;;;;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:16:62;;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;6326:182:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18211:286:61;18317:24;18211:286;18317:14;:24;:::i;:::-;6326:182:69;;;;;;;;;18369:28:61;6326:182:69;;;;;;;7160:38:61;;6326:182:69;7160:38:61;;;;6326:182:69;;;;;;18588:11:61;;18439:10;6326:182:69;;;;18439:10:61;;;18211:286;;;:::o;18451:3::-;6326:182:69;18588:23:61;:32;:23;6326:182:69;18588:23:61;;;:::i;:::-;:32;;6326:182:69;;;;;;;;18642:32:61;6326:182:69;;;;;;;;18642:32:61;6326:182:69;;18412:25:61;;1639:695:60;;;6326:182:69;;;;;;;;;;;;;;;2013:16:60;;;-1:-1:-1;6326:182:69;2084:6:60;;6326:182:69;;2084:23:60;6326:182:69;2009:308:60;1639:695::o;2009:308::-;6326:182:69;-1:-1:-1;6326:182:69;;-1:-1:-1;6326:182:69;;2296:17:60;2009:308;1639:695::o;2288:29::-;6326:182:69;1004:867:61;:::o;6326:182:69:-;;;;;;;;;;;;;;;:::o;2669:591:61:-;2793:1;;;2844:3;2821:14;;;;6326:182:69;;2819:23:61;;;;;2878:35;:17;;6326:182:69;2878:17:61;;:::i;:::-;;:35;6326:182:69;;;2793:1:61;2957:9;;;2984:8;2821:14;2984:8;;3222:21;6326:182:69;2984:8:61;;2953:221;3222:21;:::i;:::-;2844:3;6326:182:69;2809:8:61;;;;;2953:221;6326:182:69;;3102:11:61;6326:182:69;;;;;3102:11:61;;;:::i;:::-;:26;3098:61;;2953:221;3222:21;2821:14;2953:221;6326:182:69;2953:221:61;3222:21;:::i;3098:61::-;6326:182:69;;;;;;;3098:61:61;6326:182:69;;2793:1:61;6326:182:69;;;;;2793:1:61;6326:182:69;2819:23:61;;;;;;2669:591::o","linkReferences":{},"immutableReferences":{"51615":[{"start":1001,"length":32},{"start":2158,"length":32},{"start":2694,"length":32},{"start":7190,"length":32},{"start":16800,"length":32},{"start":17010,"length":32}],"51618":[{"start":1098,"length":32},{"start":2791,"length":32},{"start":6145,"length":32},{"start":6871,"length":32},{"start":9476,"length":32},{"start":11846,"length":32},{"start":12104,"length":32}],"51621":[{"start":319,"length":32},{"start":662,"length":32},{"start":2269,"length":32}]}},"methodIdentifiers":{"cancelAllDexorders()":"2800c78f","cancelDexorder(uint64)":"8489f9bf","execute(uint64,uint8,(uint256))":"6e98833d","feeManager()":"d0fb0203","numSwapOrders()":"e78f84e7","orderCanceled(uint64)":"a449d030","placeDexorder((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]))":"da1c795f","placeDexorders((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],uint8)":"89a44acb","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]),(uint8,uint8,uint8,uint8,uint8))":"4c153087","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],(uint8,uint8,uint8,uint8,uint8))":"2e690bb7","swapOrderStatus(uint64)":"77bad6b5","unwrap(uint256)":"de0e9a3e","vaultImplDidChange(address)":"58b72a09","version()":"54fd4d50","wrap(uint256)":"ea598cb0","wrapper()":"ac210cc7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router_\",\"type\":\"address\"},{\"internalType\":\"contract IFeeManager\",\"name\":\"feeManager_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"cancelAllIndex\",\"type\":\"uint64\"}],\"name\":\"DexorderCancelAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"DexorderSwapCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"trancheIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fillFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nextExecutionTime\",\"type\":\"uint32\"}],\"name\":\"DexorderSwapFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"startOrderIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"numOrders\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"name\":\"DexorderSwapPlaced\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelAllDexorders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"cancelDexorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"tranche_index\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeManager\",\"outputs\":[{\"internalType\":\"contract IFeeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numSwapOrders\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"num\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"orderCanceled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"placeDexorder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"internalType\":\"enum OcoMode\",\"name\":\"ocoMode\",\"type\":\"uint8\"}],\"name\":\"placeDexorders\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"swapOrderStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"ocoGroup\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"originalOrder\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"startPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"}],\"internalType\":\"struct TrancheStatus[]\",\"name\":\"trancheStatus\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrderStatus\",\"name\":\"status\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"vaultImplDidChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrapper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/VaultImpl.sol\":\"ArbitrumVaultImpl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe\",\"urls\":[\"bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a\",\"dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IRouter","name":"router_","type":"address"},{"internalType":"contract IFeeManager","name":"feeManager_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"cancelAllIndex","type":"uint64","indexed":false}],"type":"event","name":"DexorderCancelAll","anonymous":false},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64","indexed":false}],"type":"event","name":"DexorderSwapCanceled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64","indexed":true},{"internalType":"uint8","name":"trancheIndex","type":"uint8","indexed":true},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"uint256","name":"fillFee","type":"uint256","indexed":false},{"internalType":"uint32","name":"nextExecutionTime","type":"uint32","indexed":false}],"type":"event","name":"DexorderSwapFilled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"startOrderIndex","type":"uint64","indexed":true},{"internalType":"uint8","name":"numOrders","type":"uint8","indexed":false},{"internalType":"uint256","name":"orderFee","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasFee","type":"uint256","indexed":false}],"type":"event","name":"DexorderSwapPlaced","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelAllDexorders"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelDexorder"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"},{"internalType":"uint8","name":"tranche_index","type":"uint8"},{"internalType":"struct PriceProof","name":"proof","type":"tuple","components":[{"internalType":"uint256","name":"proof","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[],"stateMutability":"view","type":"function","name":"feeManager","outputs":[{"internalType":"contract IFeeManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numSwapOrders","outputs":[{"internalType":"uint64","name":"num","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"orderCanceled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]}],"stateMutability":"payable","type":"function","name":"placeDexorder"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"enum OcoMode","name":"ocoMode","type":"uint8"}],"stateMutability":"payable","type":"function","name":"placeDexorders"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"swapOrderStatus","outputs":[{"internalType":"struct SwapOrderStatus","name":"status","type":"tuple","components":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint64","name":"ocoGroup","type":"uint64"},{"internalType":"uint64","name":"originalOrder","type":"uint64"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"struct TrancheStatus[]","name":"trancheStatus","type":"tuple[]","components":[{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"uint32","name":"activationTime","type":"uint32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"}]}]}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unwrap"},{"inputs":[{"internalType":"address","name":"oldAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"vaultImplDidChange"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap"},{"inputs":[],"stateMutability":"view","type":"function","name":"wrapper","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/VaultImpl.sol":"ArbitrumVaultImpl"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe","urls":["bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a","dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null}},"version":1},"id":69} \ No newline at end of file diff --git a/deployment/arb1/out/VaultImpl.sol/VaultImpl.json b/deployment/arb1/out/VaultImpl.sol/VaultImpl.json deleted file mode 100644 index 9445437..0000000 --- a/deployment/arb1/out/VaultImpl.sol/VaultImpl.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"router_","type":"address","internalType":"contract IRouter"},{"name":"feeManager_","type":"address","internalType":"contract IFeeManager"},{"name":"weth9_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelAllDexorders","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelDexorder","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execute","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"},{"name":"tranche_index","type":"uint8","internalType":"uint8"},{"name":"proof","type":"tuple","internalType":"struct PriceProof","components":[{"name":"proof","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"feeManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IFeeManager"}],"stateMutability":"view"},{"type":"function","name":"numSwapOrders","inputs":[],"outputs":[{"name":"num","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"orderCanceled","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"placeDexorder","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placeDexorders","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"ocoMode","type":"uint8","internalType":"enum OcoMode"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"placementFee","inputs":[{"name":"orders","type":"tuple[]","internalType":"struct SwapOrder[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"placementFee","inputs":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"sched","type":"tuple","internalType":"struct IFeeManager.FeeSchedule","components":[{"name":"orderFee","type":"uint8","internalType":"uint8"},{"name":"orderExp","type":"uint8","internalType":"uint8"},{"name":"gasFee","type":"uint8","internalType":"uint8"},{"name":"gasExp","type":"uint8","internalType":"uint8"},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"}]}],"outputs":[{"name":"orderFee","type":"uint256","internalType":"uint256"},{"name":"gasFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swapOrderStatus","inputs":[{"name":"orderIndex","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"status","type":"tuple","internalType":"struct SwapOrderStatus","components":[{"name":"order","type":"tuple","internalType":"struct SwapOrder","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"route","type":"tuple","internalType":"struct Route","components":[{"name":"exchange","type":"uint8","internalType":"enum Exchange"},{"name":"fee","type":"uint24","internalType":"uint24"}]},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minFillAmount","type":"uint256","internalType":"uint256"},{"name":"amountIsInput","type":"bool","internalType":"bool"},{"name":"outputDirectlyToOwner","type":"bool","internalType":"bool"},{"name":"conditionalOrder","type":"uint64","internalType":"uint64"},{"name":"tranches","type":"tuple[]","internalType":"struct Tranche[]","components":[{"name":"fraction","type":"uint16","internalType":"uint16"},{"name":"startTimeIsRelative","type":"bool","internalType":"bool"},{"name":"endTimeIsRelative","type":"bool","internalType":"bool"},{"name":"minIsBarrier","type":"bool","internalType":"bool"},{"name":"maxIsBarrier","type":"bool","internalType":"bool"},{"name":"marketOrder","type":"bool","internalType":"bool"},{"name":"minIsRatio","type":"bool","internalType":"bool"},{"name":"maxIsRatio","type":"bool","internalType":"bool"},{"name":"_reserved7","type":"bool","internalType":"bool"},{"name":"rateLimitFraction","type":"uint16","internalType":"uint16"},{"name":"rateLimitPeriod","type":"uint24","internalType":"uint24"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"},{"name":"minLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]},{"name":"maxLine","type":"tuple","internalType":"struct Line","components":[{"name":"intercept","type":"uint32","internalType":"float"},{"name":"slope","type":"uint32","internalType":"float"}]}]}]},{"name":"fillFeeHalfBps","type":"uint8","internalType":"uint8"},{"name":"canceled","type":"bool","internalType":"bool"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"ocoGroup","type":"uint64","internalType":"uint64"},{"name":"originalOrder","type":"uint64","internalType":"uint64"},{"name":"startPrice","type":"uint256","internalType":"uint256"},{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"trancheStatus","type":"tuple[]","internalType":"struct TrancheStatus[]","components":[{"name":"filled","type":"uint256","internalType":"uint256"},{"name":"activationTime","type":"uint32","internalType":"uint32"},{"name":"startTime","type":"uint32","internalType":"uint32"},{"name":"endTime","type":"uint32","internalType":"uint32"}]}]}],"stateMutability":"view"},{"type":"function","name":"unwrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vaultImplDidChange","inputs":[{"name":"oldAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"wrap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrapper","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"DexorderCancelAll","inputs":[{"name":"cancelAllIndex","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"DexorderSwapCanceled","inputs":[{"name":"orderIndex","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"DexorderSwapFilled","inputs":[{"name":"orderIndex","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"trancheIndex","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fillFee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"nextExecutionTime","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"DexorderSwapPlaced","inputs":[{"name":"startOrderIndex","type":"uint64","indexed":true,"internalType":"uint64"},{"name":"numOrders","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"orderFee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e03461011157601f61549138819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615364908161012d82396080518181816103e90152818161086e01528181610a8601528181611c16015281816141a00152614272015260a05181818161044a01528181610ae70152818161180101528181611ad70152818161250401528181612e460152612f48015260c05181818161013f0152818161029601526108dd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a0033","sourceMap":"1075:5248:69:-:0;;;;;;;;;;;;;-1:-1:-1;;1075:5248:69;;;;-1:-1:-1;;;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1075:5248:69;;;;;;;;;;;-1:-1:-1;;;;;1075:5248:69;;;;;;;;;-1:-1:-1;;;;;1075:5248:69;;;;;;;;;1857:1:28;-1:-1:-1;1857:1:28;1373:16:69;;1399:24;;1433:22;;1075:5248;;;;;;;;1399:24;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1373:16;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1433:22;1075:5248;;;;;;;;;;;;;;;;;-1:-1:-1;1075:5248:69;;;;;;-1:-1:-1;1075:5248:69;;;;;-1:-1:-1;1075:5248:69","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c80632800c78f146133e45780632e690bb7146133805780634c1530871461331057806354fd4d50146132d657806358b72a091461329a5780636e98833d146115d257806377bad6b5146111225780638489f9bf1461104b57806389a44acb146109c0578063a449d03014610901578063ac210cc714610892578063d0fb020314610823578063da1c795f14610330578063de0e9a3e14610223578063e78f84e7146101dd5763ea598cb0146100cd57600080fd5b346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761011f73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610127613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661016a811515613ec9565b803b156101da5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af180156101cf576101b7575b506001905580f35b816101c191613564565b6101cc5780386101af565b80fd5b6040513d84823e3d90fd5b50fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602067ffffffffffffffff60045416604051908152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761027673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61027e613f2e565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102c1811515613ec9565b803b156101da578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561032357610313575b6001815580f35b61031c91613564565b388161030c565b50604051903d90823e3d90fd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f5761037b903690600401613690565b61039e73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6103a6613f2e565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108145783916107e5575b506104248183614410565b9190926104328385336140d5565b60ff608067ffffffffffffffff6004541693015116907f00000000000000000000000000000000000000000000000000000000000000009360409081519261047a8385613564565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106107ce5750506104b584613ac2565b526104bf83613ac2565b506104cd60ff84511061435f565b67ffffffffffffffff6004546104ed6104e68651614068565b821061435f565b169267ffffffffffffffff95895b825160ff82169081101561078f576105139084613afe565b51610520868201516143c4565b6002811015610762576001036107055788888260e08d940183815116848103610596575b50509160ff949391610557936003614764565b501660ff8114610569576001016104fb565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506105a6915089614460565b908a821680915260045411156106a8576105c1906004613c18565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff835416149182610699575b8261068c575b82610679575b50501561061c5788888b923880610544565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460101c1614893861060a565b6003810154159250610604565b600581015460ff1692506105fe565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b6020906107d9613b99565b828289010152016104a3565b610807915060a03d60a01161080d575b6107ff8183613564565b810190613e60565b38610419565b503d6107f5565b6040513d85823e3d90fd5b5080fd5b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57610939613623565b60045467ffffffffffffffff82161015610962576109586020916143d1565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5760043567ffffffffffffffff811161081f57610a0b903690600401613911565b602435600381101561104757610a3a73ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b610a42613f2e565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa92831561103c57849361101b575b50610ac18382613b4e565b939092610acf8585336140d5565b60ff608067ffffffffffffffff6004541693015116947f000000000000000000000000000000000000000000000000000000000000000093610b1460ff82511061435f565b67ffffffffffffffff600454610b2d6104e68451614068565b169280610e3b575067ffffffffffffffff935b885b825160ff821690811015610df657610b5a9084613afe565b5190610b6960408301516143c4565b6002811015610dc957600103610d6b5787878b60e0850167ffffffffffffffff81511667ffffffffffffffff8103610bed575b505090610bae929160ff956003614764565b501660ff8114610bc057600101610b42565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91509250610bfc915088614460565b9067ffffffffffffffff82168091526004541115610d0d57610c1f906004613c18565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610cfe575b81610cf1575b81610cd5575b5015610c775787878b3880610b9c565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460101c161438610c67565b6003810154159150610c61565b600581015460ff169150610c5b565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b938860018614801561100f575b15610fb15760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610f845760405261076257835260208301918783526040840191825268010000000000000000811015610f5757806001610eb8920160055560056140bd565b939093610f2b5751916003831015610762578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610b40565b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b50508860028614610e48565b61103591935060a03d60a01161080d576107ff8183613564565b9138610ab6565b6040513d86823e3d90fd5b8280fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206110a6613623565b6110c973ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b6110d1613f2e565b60076110de826004613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576111a861115d613623565b606061010060405161116e816134f2565b611176613b99565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613bf9565b5090604051906111b7826134f2565b6111c083613c58565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495611247876135a5565b966112556040519889613564565b808852602088019189526020892089925b82841061156357505050506101008901958652604051998a9960208b52519861012060208c01526101006102808c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff602060408501516112f561018086018251613a21565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015167ffffffffffffffff166102408e015201516101406102608d015280519a8b90526102a08c019a6020909101908a5b81811061143c575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b8181106113f8575050500390f35b919350916020608060019263ffffffff60608851805184528286820151168685015282604082015116604085015201511660608201520194019101918493926113ea565b919b600191939495969798999a9b9d5061022060209161154d8f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff6101808201511661018085015261152e6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a999897969594939261135f565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610f84576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c611266565b50346101cc5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761160a613623565b6024359060ff821682036110475760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112611047576040516020810181811067ffffffffffffffff82111761326d57604052604435905261166c613f2e565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561103c57849161321e575b506116b382613bf9565b50916116be816143d1565b6131c057600683018054851015613193578552602085206116e285600a8601613fbe565b5094604051916116f1836134a6565b8783528760208401528760408401528760608401528760808401528760a08401528760c08401528760e0840152600187015463ffffffff8160401c164210156131355763ffffffff8160201c1642106130d75763ffffffff164210613079576003820281015460ff8160301c1680613061575b15612cbf576002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416906117e860405194859384937f77aa2cd100000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612c8d575b5061184a63ffffffff600160038702860101541661463e565b818060601b046c01000000000000000000000000148215171561056957806c01000000000000000000000000016c0100000000000000000000000011610569576118f792916118ab916c01000000000000000000000000019060601b61402f565b60208601525b61ffff6003890154916118dc828d6118cb8285168761401c565b9050048060808a01528c5490614084565b60c088015260501c1680612c5e575b50600988015490614084565b8060e08501528060c085015111612c53575b5060c0830151966004870154809810612bf5578880889760058901549060ff8260081c16600014612bee575b73ffffffffffffffffffffffffffffffffffffffff60018b015416998a9267ffffffffffffffff808260101c1614600014612b525760ff90859e5b8b73ffffffffffffffffffffffffffffffffffffffff80865416966002602060c085015194015197015498604051986119a88a6134a6565b895260208901521660408701526060860152608085015216151560a083015260c082015262ffffff8260081c1660e082015262ffffff60e060405192611a1c60208501957f90b54f0800000000000000000000000000000000000000000000000000000000875260ff602487019116613a21565b73ffffffffffffffffffffffffffffffffffffffff815116604485015273ffffffffffffffffffffffffffffffffffffffff602082015116606485015273ffffffffffffffffffffffffffffffffffffffff6040820151166084850152606081015160a4850152608081015160c485015260a0810151151560e485015260c08101516101048501520151166101248201526101248152611abe61014482613564565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d15612b4a573d9267ffffffffffffffff8411612b1d5760405193611b4760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160186613564565b84523d8b602086013e5b15612b0d57604083805181010312612a4d57604060208401519301519280604087015260ff60058a015416600014612b0357611b98905b8060c088015260098a0154613b12565b6009890155611bac60c08601518354613b12565b825560a0850151612a93575b50614e20611bcd60ff60078a0154168461401c565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612a64575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818d8b5af18015612a5957612a1a575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160101c169367ffffffffffffffff8503611e5d575b50505067ffffffffffffffff915080611d5260036007930154600983015490614084565b60048201541115611d8a57015460301c1667ffffffffffffffff8103611d7b575b506001815580f35b611d8490615124565b38611d73565b015460301c1667ffffffffffffffff81141580611dbc575b611dad575b5061030c565b611db690615124565b38611da7565b50600554811015611e3057600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611e0357600114611da2565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611e76611e70602494969597613bf9565b50613c58565b95604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015612a0f5786906129d7575b611ec09250614084565b916060840192835260ff6007830154166004549167ffffffffffffffff831692680100000000000000008110156129aa57806001611f0392016004556004613c18565b5050611f10836004613c18565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600286016040880151805190600282101561297d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b169316911617179055516003860155608086015160048601556005850160a0870151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561208660c0880151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08701517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055610100860151805190680100000000000000008211612374576006870154826006890155808310612929575b506020016006870189526020892089915b83831061259957505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078701937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760601b16161694161765ffffffff00004260101b161717161790558491855b610100860151805182101561240c57816121d591613afe565b516060810151158015906123ff575b6123a157600a86015468010000000000000000811015612374578060016122149201600a890155600a8801613fbe565b505061222382600a8801613fbe565b5060208201511561235d5761228c600161224e63ffffffff6101608601511663ffffffff421661525d565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b60408201511561234a5763ffffffff806122af816101808601511682421661525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c0810151159081159161233c575b50612333575b6001016121bc565b6001935061232b565b60e091500151151538612325565b63ffffffff8080610180850151166122af565b61228c600163ffffffff6101608501511692612250565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b50608081015115156121e4565b505092909391612465575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a2903880611d2e565b602061247460408401516143c4565b73ffffffffffffffffffffffffffffffffffffffff845116906124eb62ffffff84604073ffffffffffffffffffffffffffffffffffffffff828a01511698015101511660405196879485947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561258e578592612548575b50600801558067ffffffffffffffff612417565b929150926020833d602011612586575b8161256560209383613564565b81010312612582579151919290919067ffffffffffffffff612534565b8480fd5b3d9150612558565b6040513d87823e3d90fd5b8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166128c391907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190612100565b6003818102048103610bc0576003838102048303610bc057600688018a5260208a208360030281015b82600302820181106129655750506120ef565b808c600392558c60018201558c600282015501612952565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b506020823d602011612a07575b816129f160209383613564565b81010312612a0357611ec09151611eb6565b8580fd5b3d91506129e4565b6040513d88823e3d90fd5b6020813d602011612a51575b81612a3360209383613564565b81010312612a4d57518015158103612a4d575060ff611ca8565b8980fd5b3d9150612a26565b6040513d8c823e3d90fd5b612a86915060203d602011612a8c575b612a7e8183613564565b810190614091565b38611c46565b503d612a74565b63ffffffff612ace612ac8612abd839462ffffff60c08b01519160038b02015460601c169061401c565b60a08901519061402f565b42613b12565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611bb8565b50611b9883611b88565b8251838b82156101cc5750602001fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b606092611b51565b9350509050604051907f70a082310000000000000000000000000000000000000000000000000000000082523060048301526020826024818d5afa91821561103c5784938b938d928691612bac575b509060ff919e611970565b9450509350506020823d602011612be6575b81612bcb60209383613564565b81010312612be2578a60ff85948c94519091612ba1565b8380fd5b3d9150612bbe565b5030611935565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611909565b612c6f61ffff91608088015161401c565b048060a08701528060c087015111156118eb5760c0860152386118eb565b90506020813d602011612cb7575b81612ca860209383613564565b81010312612a4d575138611831565b3d9150612c9b565b888452612cd3600160038502840101614521565b612eb0575b612ce9600260038502840101614521565b612cf7575b6118f7906118b1565b835115612dae575b60ff8160401c16600014612d9857612d3263ffffffff600789015460101c166008890154906002600387028601016145ba565b84511115612cee5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612da9600260038502840101614546565b612d32565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612e2d60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a91612e7e575b508452612cff565b90506020813d602011612ea8575b81612e9960209383613564565b81010312612a4d575138612e76565b3d9150612e8c565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612f2f60405194859384937f4f78bfff00000000000000000000000000000000000000000000000000000000855260ff62ffffff8460081c16931660048601613fda565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612a59578a9161302f575b50845260ff8160381c1660001461301957612fae63ffffffff600789015460101c166008890154906001600387028601016145ba565b806020860152845111612cd85760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b61302a600160038502840101614546565b612fae565b90506020813d602011613059575b8161304a60209383613564565b81010312612a4d575138612f78565b3d915061303d565b5063ffffffff60016003850284010154161515611764565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613265575b8161323960209383613564565b81010312612be2575173ffffffffffffffffffffffffffffffffffffffff81168103612be257386116a9565b3d915061322c565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50346101cc5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576132d26135bd565b5080f35b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc57602060405160018152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133653660048601613690565b61336e36613990565b90613f69565b82519182526020820152f35b50346101cc5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc576004359067ffffffffffffffff82116101cc5760406133746133d53660048601613911565b6133de36613990565b90613b4e565b50346101cc57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101cc5761343673ffffffffffffffffffffffffffffffffffffffff600254163314613a5d565b61343e613f2e565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b610100810190811067ffffffffffffffff8211176134c357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff8211176134c357604052565b6040810190811067ffffffffffffffff8211176134c357604052565b6101e0810190811067ffffffffffffffff8211176134c357604052565b60a0810190811067ffffffffffffffff8211176134c357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176134c357604052565b67ffffffffffffffff81116134c35760051b60200190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff821682036135e057565b359062ffffff821682036135e057565b359081151582036135e057565b6004359067ffffffffffffffff821682036135e057565b359061ffff821682036135e057565b359063ffffffff821682036135e057565b91908260409103126135e0576040516136728161350f565b602061368b81839561368381613649565b855201613649565b910152565b91908281039261014084126135e057604051906136ac826134f2565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc083966136da846135e5565b85526136e8602085016135e5565b602086015201126135e0576040516136ff8161350f565b604082013560028110156135e057815261371b60608301613606565b602082015260408301526080810135606083015260a0810135608083015261374560c08201613616565b60a083015261375660e08201613616565b60c083015261010081013567ffffffffffffffff811681036135e05760e08301526101208101359067ffffffffffffffff82116135e0570182601f820112156135e0578035906137a5826135a5565b936137b36040519586613564565b82855260206102208187019402830101918183116135e057602001925b8284106137e257505050506101000152565b610220848303126135e0576020610220916040516137ff8161352b565b6138088761363a565b8152613815838801613616565b8382015261382560408801613616565b604082015261383660608801613616565b606082015261384760808801613616565b608082015261385860a08801613616565b60a082015261386960c08801613616565b60c082015261387a60e08801613616565b60e082015261388c6101008801613616565b61010082015261389f610120880161363a565b6101208201526138b26101408801613606565b6101408201526138c56101608801613649565b6101608201526138d86101808801613649565b6101808201526138ec856101a0890161365a565b6101a0820152613900856101e0890161365a565b6101c08201528152019301926137d0565b9080601f830112156135e0578135613928816135a5565b926139366040519485613564565b81845260208085019260051b820101918383116135e05760208201905b83821061396257505050505090565b813567ffffffffffffffff81116135e05760209161398587848094880101613690565b815201910190613953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126135e057604051906139c782613548565b8160243560ff811681036135e057815260443560ff811681036135e057602082015260643560ff811681036135e057604082015260843560ff811681036135e057606082015260a4359060ff821682036135e05760800152565b906002821015613a2e5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b15613a6457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b805115613acf5760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051821015613acf5760209160051b010190565b91908201809211613b1f57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b8151841015613b9157613b88600191613b82613b7c86613b768988613afe565b51613f69565b92613b12565b97613b12565b93019294613b56565b949392505050565b60405190613ba6826134f2565b6060610100836000815260006020820152604051613bc38161350f565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b600454811015613acf576004600052600b602060002091020190600090565b8054821015613acf57600052600b602060002091020190600090565b90604051613c418161350f565b602063ffffffff8294548181168452821c16910152565b90604051613c65816134f2565b809273ffffffffffffffffffffffffffffffffffffffff815416825273ffffffffffffffffffffffffffffffffffffffff600182015416602083015260405190613cae8261350f565b60028101549160ff83166002811015613a2e5760069362ffffff91835260081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260101c1660e084015201908154613d2a816135a5565b92613d386040519485613564565b818452602084019060005260206000206000915b838310613d5e57505050506101000152565b60036020600192604051613d718161352b565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c16610180820152613e2c858701613c34565b6101a0820152613e3e60028701613c34565b6101c0820152815201920192019190613d4c565b519060ff821682036135e057565b908160a09103126135e057613ec1608060405192613e7d84613548565b613e8681613e52565b8452613e9460208201613e52565b6020850152613ea560408201613e52565b6040850152613eb660608201613e52565b606085015201613e52565b608082015290565b15613ed057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b600260005414613f3f576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60e081019167ffffffffffffffff8084511614613fb357613fa9611e70613fa4613faf9567ffffffffffffffff806004541691511690614460565b613bf9565b916144ce565b9091565b90613faf9250614410565b8054821015613acf5760005260206000209060011b0190600090565b929373ffffffffffffffffffffffffffffffffffffffff62ffffff9296958160609561400a88608081019b613a21565b16602087015216604085015216910152565b81810292918115918404141715613b1f57565b8115614039570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b67ffffffffffffffff039067ffffffffffffffff8211613b1f57565b91908203918211613b1f57565b908160209103126135e0575173ffffffffffffffffffffffffffffffffffffffff811681036135e05790565b8054821015613acf5760005260206000200190600090565b916140e08183613b12565b3410614301578115801561422f575b508015801561415d575b5061410391613b12565b34811061410e575050565b600080809361411e829434614084565b9082908215614153575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757565b6040513d6000823e3d90fd5b6108fc9150614128565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156141475760008481949282949383948491614210575b508391614206575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140f9565b6108fc91506141e3565b614229915060203d602011612a8c57612a7e8183613564565b386141db565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561414757600085819492829493839484916142e2575b5083916142d8575b73ffffffffffffffffffffffffffffffffffffffff1690f11561414757386140ef565b6108fc91506142b5565b6142fb915060203d602011612a8c57612a7e8183613564565b386142ad565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b1561436657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613a2e5790565b67ffffffffffffffff6003541667ffffffffffffffff8216109081156143f5575090565b60ff91506144066007916004613c18565b50015460081c1690565b9190606083015115614457578061443d6144376144549360ff602081835116920151161b90565b94615277565b9060ff606081604084015116920151161b9061401c565b90565b50600091508190565b600090678000000000000000831661447757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff82116144a157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115614515579061451061450a614504846144fe6144549660ff602081835116920151161b90565b97614410565b90613b12565b91615277565b61401c565b50509050600090600090565b5463ffffffff81161590811591614536575090565b63ffffffff915060201c16151590565b5463ffffffff61455781831661463e565b9160201c168015614577579061456f6144549261463e565b904291615203565b5090565b8181029291600082127f8000000000000000000000000000000000000000000000000000000000000000821416613b1f578184051490151715613b1f57565b54909163ffffffff6145db816145d181861661463e565b9460201c1661463e565b931660030b916145eb838561457b565b916000838203931281841281169082851390151617613b1f576c010000000000000000000000009161461c9161457b565b059060008282019283129112908015821691151617613b1f5761445492615203565b637fffffff81161561475e57637f800000811660030b60171d60030b60ff8114614700576380000000627fffff831660030b826146f55760011b925b166146e9575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146146dc576000031b90565b6000811315614577571d90565b60009190910390614680565b62800000179261467a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b600101805493954263ffffffff169492939267ffffffffffffffff81169290680100000000000000008110156134c3576147b0916147a9826001879401835582613c18565b5050613c18565b5073ffffffffffffffffffffffffffffffffffffffff80865116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602085019473ffffffffffffffffffffffffffffffffffffffff86511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002820195604082019586519788516002811015613a2e576000997fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b16931691161717905560608301516003850155608083015160048501556005840160a0840151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815561493160c0850151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08401517fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff69ffffffffffffffff000083549260101b169116179055600684019a61010084019b8c5190815191680100000000000000008311614bbb57815483835580841061507b575b506020909e9d9e01908b5260208b208b915b838310614ce5575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078801947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558695879a600a85019b5b8b518051821015614bf55781614a6691613afe565b51606081015115801590614be8575b6123a1578d5468010000000000000000811015614bbb57828f614aa1836001614aa89501835582613fbe565b5050613fbe565b5060208201518d9015614ba357600161224e614ad09263ffffffff610160870151169061525d565b60408201518d9015614b8f5763ffffffff614af4819282610180870151169061525d565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c08101511590811591614b81575b50614b78575b600101614a51565b60019850614b70565b60e091500151151538614b6a565b5063ffffffff808061018085015116614af4565b50614ad0600163ffffffff6101608501511692612250565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614a75565b50509397985093985093985093614c0f575b505050505050565b60209273ffffffffffffffffffffffffffffffffffffffff62ffffff858280614c3888516143c4565b995116945116955101511695614c7d604051978896879586947f77aa2cd100000000000000000000000000000000000000000000000000000000865260048601613fda565b0392165afa928315614cd9578093614ca1575b505060080155388080808080614c07565b909192506020823d602011614cd1575b81614cbe60209383613564565b810103126101cc57505190600838614c90565b3d9150614cb1565b604051903d90823e3d90fd5b9d9e9d8051805161ffff16818454916020820151151560101b62ff0000166040830151151560181b6060840151151560201b6080850151151560281b60a0860151151560301b60c0870151151560381b9160e0880151151560401b93610100890151151560481b956101208a015160501b6bffff0000000000000000000016976101408b015160601b6effffff00000000000000000000000016996101608c015160781b72ffffffff000000000000000000000000000000169b610180015160981b76ffffffff00000000000000000000000000000000000000169c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff169063ff00000016177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff169064ff0000000016177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff1661501291907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909e9d9e6149ae565b806003029060038204036150f757836003026003810485036150ca5760208e8581522091820191015b8d8282106150b357505061499c565b8082556001820181905560028201556003016150a4565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61512f9060056140bd565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff8211613b1f5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061518c57505050565b60018160076151a467ffffffffffffffff9486613c18565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615176565b909182818302019282156140395783038290050361522a5750600081136144545750600090565b600012159050615258577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b9063ffffffff8091169116019063ffffffff8211613b1f57565b600091825b61010083015180518510156153275761012061529b8661ffff93613afe565b51015116906000826152c4575061010091506152ba6001918290613b12565b940193905061527c565b5061ffff6152d78184810416938461401c565b106152ec575b6152ba61010092600192613b12565b60018201809211156152dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b509250905056fea2646970667358221220118372eacc8245632fb1638b77d68e4da2960a8fbe2c7b8c68573f1ef2a0407564736f6c634300081a0033","sourceMap":"1075:5248:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:42;1075:5248;6282:6;1075:5248;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;5994:5:69;1075:5248;5994:5;1075:5248;5978:40;5986:26;;;5978:40;:::i;:::-;6028:29;;;;;1075:5248;;;;;6028:29;;;;1075:5248;6028:29;;1075:5248;;6028:29;;;;;;;;;1075:5248;1899:1:28;1075:5248:69;1899:1:28;;1075:5248:69;;6028:29;;;;;:::i;:::-;1075:5248;;6028:29;;;;1075:5248;;;6028:29;1075:5248;;;;;;;;;6028:29;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:42;1075:5248;6282:6;1075:5248;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;6160:5:69;1075:5248;6160:5;1075:5248;6144:40;6152:26;;;6144:40;:::i;:::-;6194:22;;;;;1075:5248;;;6194:22;1075:5248;;6194:22;;;;1075:5248;6194:22;;1075:5248;;;6194:22;;1075:5248;6194:22;;;;;;;;1075:5248;;1899:1:28;;1075:5248:69;;6194:22;;;;:::i;:::-;;;;;;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6260:42;1075:5248;6282:6;1075:5248;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;1075:5248:69;;;2889:17;;;:10;1075:5248;2889:10;1075:5248;2889:10;1075:5248;2889:17;;;;;;;;;;;1075:5248;2953:36;;;;;:::i;:::-;6268:10;;;3268:6;6268:10;;;3268:6;:::i;:::-;1075:5248;3389:20;1075:5248;;;;3389:20;;1075:5248;;3411:6;;1075:5248;;;;;;;;;;:::i;:::-;3440:1:61;1075:5248:69;;;;;;;;;;;;3452:20:61;;;;;:::i;:::-;;;;;:::i;:::-;;3760:50;1075:5248:69;;;3768:34:61;3760:50;:::i;:::-;1075:5248:69;;;3845:72:61;3874:35;1075:5248:69;;3874:35:61;:::i;:::-;3853:56;;3845:72;:::i;:::-;1075:5248:69;3983:15:61;1075:5248:69;4551:11:61;;4586:3;1075:5248:69;;;;;4564:20:61;;;;;;4631:12;;;;:::i;:::-;;4665:20;:11;;;;:20;:::i;:::-;6282:6:69;1075:5248;;;;;3440:1:61;4665:42;1075:5248:69;;5445:22:61;;;1075:5248:69;5445:22:61;;;1075:5248:69;;;;5445:46:61;;;5441:1493;;4586:3;6947:81;;;1075:5248:69;6947:81:61;;;;;3312:11:69;6947:81:61;:::i;:::-;;1075:5248:69;;;;;;3440:1:61;1075:5248:69;4551:11:61;;1075:5248:69;;;;;;;;;;5441:1493:61;5528:58;;;;;;;;;;:::i;:::-;1075:5248:69;;;;;;;;;-1:-1:-1;1075:5248:69;;;6203:20:61;;1075:5248:69;6203:20:61;:::i;:::-;6416:14;;1075:5248:69;;6416:14:61;;1075:5248:69;;;;;;6416:37:61;:136;;;;5441:1493;6416:240;;;5441:1493;6416:419;;;5441:1493;1075:5248:69;;;;;5441:1493:61;;;;;;;;1075:5248:69;;;;;;;;;;;;3312:11;1075:5248;;;;;;;;;;6416:419:61;6783:28;;;;;1075:5248:69;;;;6783:52:61;6416:419;;;;:240;3312:11:69;6633:18:61;;1075:5248:69;6633:23:61;;-1:-1:-1;6416:240:61;;:136;6527:25;;;1075:5248:69;;;;-1:-1:-1;6416:136:61;;1075:5248:69;;;;;;;;;;;;3312:11;1075:5248;;;;;;;;;;;;;;;;;;;;;;6282:6;1075:5248;;;;;;;;;;;;;;;;;;;;4564:20:61;;;3433:51:69;1075:5248;4564:20:61;;;1075:5248:69;;;3440:1:61;1075:5248:69;;;;;;;;;3433:51;3440:1:61;1899::28;;1075:5248:69;;;;;;;:::i;:::-;;;;;;;;;;2889:17;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1171:39;1075:5248;;;;;;;;;;;;;;;;;;;;5891:5;1075:5248;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;5632:38;1075:5248;;;5695:45;1075:5248;5695:45;;:::i;:::-;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;6260:42;1075:5248;6282:6;1075:5248;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;1075:5248:69;;3738:17;1075:5248;3738:17;;;:10;1075:5248;3738:10;1075:5248;3738:10;1075:5248;3738:17;;;;;;;;;;;1075:5248;3802:27;;;;;:::i;:::-;6268:10;;;3879:6;6268:10;;;3879:6;:::i;:::-;1075:5248;4002:20;1075:5248;;;;4002:20;;1075:5248;;4033:6;;1075:5248;3760:50:61;1075:5248:69;;;3768:34:61;3760:50;:::i;:::-;1075:5248:69;;;3845:72:61;3874:35;1075:5248:69;;3874:35:61;:::i;3845:72::-;1075:5248:69;;4012:25:61;;;4052:23;1075:5248:69;4008:367:61;;4551:11;4586:3;1075:5248:69;;;;;4564:20:61;;;;;;4631:12;;;;:::i;:::-;;4665:11;:20;1075:5248:69;4665:11:61;;;:20;:::i;:::-;6282:6:69;1075:5248;;;;;3853:11:61;4665:42;1075:5248:69;;5445:22:61;;;1075:5248:69;5445:22:61;;1075:5248:69;;;;;5445:46:61;;5441:1493;;4586:3;6947:81;;;;;;1075:5248:69;6947:81:61;1075:5248:69;6947:81:61;:::i;:::-;;1075:5248:69;;;;;;3853:11:61;1075:5248:69;4551:11:61;;1075:5248:69;;;;;;;;;;5441:1493:61;5528:58;;;;;;;;;:::i;:::-;1075:5248:69;;;;;;;;;-1:-1:-1;1075:5248:69;;;6203:20:61;;1075:5248:69;6203:20:61;:::i;:::-;6416:14;1075:5248:69;;6416:14:61;;1075:5248:69;;;;;;6416:37:61;:136;;;;5441:1493;6416:240;;;5441:1493;6416:419;;;5441:1493;1075:5248:69;;;;5441:1493:61;;;;;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;6416:419:61;1075:5248:69;6783:28:61;;;;;;1075:5248:69;;;;6783:52:61;6416:419;;;:240;1075:5248:69;6633:18:61;;1075:5248:69;6633:23:61;;-1:-1:-1;6416:240:61;;:136;6527:25;;;1075:5248:69;;;;-1:-1:-1;6416:136:61;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6282:6;1075:5248;;;;;;;;;;;;;;;;;;;;4564:20:61;;;4055:70:69;1075:5248;4564:20:61;;1075:5248:69;4564:20:61;1075:5248:69;;;;;;;;;;;;;;;;4055:70;3853:11:61;1899:1:28;;1075:5248:69;;4008:367:61;268:16:62;;3853:11:61;4095:41;;:84;;;;4008:367;4090:285;;;4213:14;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;268:16:62;;1075:5248:69;;;4269:54:61;;1075:5248:69;;;;;4269:54:61;;1075:5248:69;;;;;;;;;;3853:11:61;1075:5248:69;;;4213:14:61;1075:5248:69;4213:14:61;1075:5248:69;:::i;:::-;;;;;;;268:16:62;1075:5248:69;268:16:62;;;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4008:367:61;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4090:285:61;4361:14;1075:5248:69;;4361:14:61;;;1075:5248:69;;4361:14:61;;1075:5248:69;;;;;;;;;;;4361:14:61;4095:84;268:16:62;;;6282:6:69;4140:39:61;;4095:84;;3738:17:69;;;;;;;;;;;;;;;:::i;:::-;;;;;;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;18642:32:61;1075:5248:69;;;:::i;:::-;6260:42;1075:5248;6282:6;1075:5248;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;18588:32:61;:23;;1075:5248:69;18588:23:61;:::i;:::-;:32;;1075:5248:69;;;;;;;;;;;;;;;18642:32:61;18623:4;1899:1:28;;1075:5248:69;;;;;;;;;;;;;;4883:30;1075:5248;;:::i;:::-;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4883:30;:::i;:::-;1075:5248;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1075:5248:69;;;;;;;;-1:-1:-1;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:103:28;;:::i;:::-;1075:5248:69;;;5156:13;;1075:5248;5080:4;1075:5248;5080:4;;5156:13;;;;;;;;;;;1075:5248;10361:23:61;;;;:::i;:::-;10398:29;;;;;:::i;:::-;10394:59;;10501:21;;;1075:5248:69;;;;;;;;;;;;10578:34:61;:20;;;;:34;:::i;:::-;1075:5248:69;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10762:15:61;;1075:5248:69;;;;;;10744:15:61;:33;1075:5248:69;;;;;;;;10744:15:61;10816:36;1075:5248:69;;;;10744:15:61;10892:41;1075:5248:69;;5196:11;1075:5248;;;;;;;;;;11068:58:61;;;1075:5248:69;11064:2260:61;;;11231:18;;;1075:5248:69;;;;;;;;11298:21:61;;1075:5248:69;;;11209:135:61;1075:5248:69;;11209:135:61;;;;;1075:5248:69;11209:135:61;;1075:5248:69;;;;;;;;;11209:135:61;;;:::i;:::-;;5250:6:69;1075:5248;5250:6;1075:5248;11209:135:61;;;;;;;;;;;11064:2260;1075:5248:69;11450:37:61;1075:5248:69;;5196:11;1075:5248;;;;11450:15:61;1075:5248:69;;11450:37:61;:::i;:::-;1075:5248:69;;;;;11529:5:61;1075:5248:69;;;;;;;;11529:5:61;1075:5248:69;11529:5:61;1075:5248:69;;;13864:35:61;1075:5248:69;;11512:41:61;1075:5248:69;11529:5:61;1075:5248:69;;;;11512:41:61;:::i;:::-;1075:5248:69;;;;11064:2260:61;1075:5248:69;5196:11;13376:19:61;;1075:5248:69;;13484:32:61;1075:5248:69;;13376:38:61;1075:5248:69;;;13376:38:61;;:::i;:::-;:53;1075:5248:69;;;;;;;;;13484:32:61;;:::i;:::-;1075:5248:69;;;;;;;13553:30:61;13549:258;;11064:2260;13886:13;;;;1075:5248:69;13864:35:61;;:::i;:::-;1075:5248:69;;;;;;;;;;13913:22:61;13909:117;;11064:2260;1075:5248:69;;;;;14057:26:61;1075:5248:69;14057:26:61;;1075:5248:69;14045:38:61;;;317:16:62;;14121:34:61;;;;;;;1075:5248:69;14121:58:61;1075:5248:69;;;;;14121:58:61;1075:5248:69;;;14121:58:61;1075:5248:69;;14214:21:61;;1075:5248:69;;14410:93:61;;;1075:5248:69;;;;;;14410:53:61;:93;1075:5248:69;;;;14410:93:61;;;;1075:5248:69;;;;;;;15233:18:61;1075:5248:69;;;;;;;;15233:18:61;;1075:5248:69;;;;;;;;:::i;:::-;;;;15046:210:61;;1075:5248:69;;;15046:210:61;;1075:5248:69;;15046:210:61;;1075:5248:69;;15046:210:61;;1075:5248:69;;;;;15046:210:61;;1075:5248:69;;15046:210:61;;1075:5248:69;;;;;;;15046:210:61;;1075:5248:69;;;;;15370:86:61;317:16:62;1075:5248:69;15370:86:61;;;15393:21;15370:86;;1075:5248:69;;15370:86:61;;1075:5248:69;;317:16:62;:::i;:::-;1075:5248:69;317:16:62;;1075:5248:69;;317:16:62;;1075:5248:69;;;15046:210:61;;317:16:62;1075:5248:69;317:16:62;;;1075:5248:69;;;15046:210:61;;317:16:62;1075:5248:69;317:16:62;;;1075:5248:69;;15046:210:61;;317:16:62;;;;1075:5248:69;;15046:210:61;;317:16:62;;;;1075:5248:69;;15046:210:61;;317:16:62;1075:5248:69;;317:16:62;;;1075:5248:69;;15046:210:61;;317:16:62;;;;1075:5248:69;15046:210:61;317:16:62;1075:5248:69;317:16:62;;;1075:5248:69;317:16:62;15370:86:61;;;;;;:::i;:::-;15328:138;5250:6:69;1075:5248;5250:6;1075:5248;15328:138:61;;;317:16:62;;;;;;1075:5248:69;317:16:62;;;;1075:5248:69;;;;;;;;;;317:16:62;1075:5248:69;;:::i;:::-;317:16:62;;;;1075:5248:69;317:16:62;;;;15480:8:61;15476:319;;1075:5248:69;;;;15864:38:61;;317:16:62;;;;1075:5248:69;;15864:38:61;;1075:5248:69;317:16:62;;1075:5248:69;;;;;;;;14121:34:61;;;1075:5248:69;;15957:51:61;;;;16018:25;15957:51;;1075:5248:69;;;;;13886:13:61;;;1075:5248:69;16018:25:61;:::i;:::-;13886:13;;;1899:1:28;16053:26:61;1075:5248:69;;;;;;16053:26:61;:::i;:::-;1899:1:28;;1075:5248:69;;;;16126:238:61;;15957:51;16423:21;16447:6;16411:33;1075:5248:69;16423:21:61;;;1075:5248:69;;16411:33:61;;:::i;:::-;1075:5248:69;;;;;;;;16481:27:61;;1075:5248:69;5258:10;1075:5248;5258:10;1075:5248;5258:10;1075:5248;16481:27:61;;;;;;;;;;;15957:51;1075:5248:69;;;;;;;;16463:57:61;1075:5248:69;16463:57:61;;1075:5248:69;;16463:57:61;;1075:5248:69;;317:16:62;;1075:5248:69;;16463:57:61;1075:5248:69;16463:57:61;;;;;;;;;;;15957:51;1075:5248:69;;16536:114:61;1075:5248:69;;;;;;;;;;;;;;;10762:15:61;;1075:5248:69;;;;;;;;;317:16:62;;1075:5248:69;;317:16:62;;1075:5248:69;;317:16:62;;1075:5248:69;;;;16536:114:61;;14121:34;;;1075:5248:69;;;;;;16805:53:61;1075:5248:69;16805:53:61;;16801:721;;15957:51;13376:19;;;1075:5248:69;13376:19:61;;;17604:35;5196:11:69;16423:21:61;13376:19;;1075:5248:69;13886:13:61;;;1075:5248:69;17604:35:61;;:::i;:::-;1075:5248:69;14057:26:61;;1075:5248:69;-1:-1:-1;1075:5248:69;;;16423:21:61;1075:5248:69;;;;;17819:31:61;;17815:86;;17649:434;;1075:5248:69;1899:1:28;;1075:5248:69;;17815:86:61;17885:15;;;:::i;:::-;17815:86;;;17649:434;16423:21;1075:5248:69;;;;;17930:31:61;;;:105;;;17649:434;17926:157;;17649:434;;;;17926:157;18067:15;;;:::i;:::-;17926:157;;;17930:105;17965:31;14121:34;1075:5248:69;268:16:62;;;;;14121:34:61;1075:5248:69;;;268:16:62;;;1075:5248:69;;5196:11;268:16:62;;;;;1075:5248:69;17965:70:61;17930:105;;268:16:62;1075:5248:69;;;;;;;;;268:16:62;1075:5248:69;;;;;;;;;16801:721:61;1075:5248:69;139:16:62;17005:42:61;1075:5248:69;17005:42:61;;;;;:::i;:::-;139:16:62;;:::i;:::-;1075:5248:69;;;17200:33:61;;;;1075:5248:69;17200:33:61;;5080:4:69;1075:5248;17200:33:61;;1075:5248:69;17200:33:61;;;;;;;;;;16801:721;17200:59;;;;:::i;:::-;17185:12;1075:5248:69;17185:12:61;;1075:5248:69;;;;16423:21:61;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8523:23:61;;;;1075:5248:69;8523:23:61;:::i;:::-;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15233:18:61;1075:5248:69;;;;;;;;;15233:18:61;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;5196:11;1075:5248;;1899:1:28;1075:5248:69;;;;;;;1899:1:28;14121:34:61;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10501:21:61;1075:5248:69;;;;10501:21:61;1075:5248:69;;;;;;;;16801:721:61;1075:5248:69;;;10501:21:61;1075:5248:69;;;;;;;;;;;;;;;8586:21:61;;;;1075:5248:69;;16423:21:61;8586;;1075:5248:69;;;;;;;;;;;;;;;;;10744:15:61;1075:5248:69;;;;;;;;;8795:27:61;8837:8;;8872:3;1075:5248:69;;;8849:14:61;1075:5248:69;;8847:23:61;;;;;8917:17;;;;:::i;:::-;;1075:5248:69;8992:20:61;;1075:5248:69;;;;8992:44:61;;;8872:3;8988:79;;10578:20;9102;;1075:5248:69;;;;;;;;;;;;10578:20:61;9102;;1075:5248:69;10578:20:61;9102;;1075:5248:69;:::i;:::-;9102:20:61;;9170:23;9102:20;10578;9102;;9170:23;:::i;:::-;-1:-1:-1;1075:5248:69;7784:27:61;;1075:5248:69;;7784:78:61;;7757:106;1075:5248:69;7814:29:61;1075:5248:69;;7826:17:61;;1075:5248:69;;;10744:15:61;1075:5248:69;7814:29:61;:::i;:::-;7784:78;;7757:23;:106;;1075:5248:69;;;;;;;;;;;;;;;7757:106:61;1075:5248:69;7898:25:61;;1075:5248:69;;7898:72:61;;1075:5248:69;7938:15:61;7926:27;7938:15;1075:5248:69;7938:15:61;;1075:5248:69;;10744:15:61;;1075:5248:69;7926:27:61;:::i;:::-;1075:5248:69;;;;;;;;;;;;;;;;;;317:16:62;;;;;;;1075:5248:69;9222:18:61;;1075:5248:69;;;;;9222:40:61;;;7898:72;9218:83;;;7898:72;1075:5248:69;;8837:8:61;;9218:83;1075:5248:69;;-1:-1:-1;9218:83:61;;9222:40;1075:5248:69;9244:18:61;;;1075:5248:69;;;9222:40:61;;;7898:72;1075:5248:69;7955:15:61;;1075:5248:69;7955:15:61;;1075:5248:69;;7898:72:61;;7784:78;7757:106;1075:5248:69;;;7845:17:61;;1075:5248:69;;7784:78:61;;;1075:5248:69;;;;;;;;;;8988:79:61;317:16:62;1075:5248:69;;9055:12:61;;;1075:5248:69;;9055:12:61;;1075:5248:69;15233:18:61;1075:5248:69;;;;;;;;;9055:12:61;8992:44;9016:20;1075:5248:69;9016:20:61;;1075:5248:69;;;8992:44:61;;8847:23;;;;;;;9469:143;;8832:592;1075:5248:69;;16423:21:61;1075:5248:69;;;17454:44:61;1075:5248:69;;;;;;268:16:62;1075:5248:69;268:16:62;;1075:5248:69;268:16:62;1075:5248:69;268:16:62;;1075:5248:69;17454:44:61;16801:721;;;;;9469:143;1075:5248:69;9543:20:61;1075:5248:69;;;9543:11:61;:20;:::i;:::-;1075:5248:69;;;;;9521:91:61;1075:5248:69;;;;;;;;;;;9596:11:61;:15;1075:5248:69;;;;9521:91:61;;;;;1075:5248:69;9521:91:61;;1075:5248:69;9521:91:61;;;:::i;:::-;;5250:6:69;1075:5248;5250:6;1075:5248;9521:91:61;;;;;;;;;;;9469:143;-1:-1:-1;1075:5248:69;9501:17:61;1899:1:28;9501:17:61;1075:5248:69;9469:143:61;;9521:91;;;;;1075:5248:69;9521:91:61;;1075:5248:69;9521:91:61;;;;;;1075:5248:69;9521:91:61;;;:::i;:::-;;;1075:5248:69;;;;;;9521:91:61;;;;1075:5248:69;;9521:91:61;;1075:5248:69;;;;9521:91:61;;;-1:-1:-1;9521:91:61;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:16:62;;;;;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;15233:18:61;1075:5248:69;;317:16:62;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5196:11;1075:5248;;;;;;;;;5196:11;1075:5248;;;;;;;;5196:11;1075:5248;;;;;;;;10501:21:61;1075:5248:69;;;;;;;;5196:11;1075:5248;;;;;5196:11;1075:5248;;;;;;;;;;;;;;5196:11;1075:5248;;;;;;;;15233:18:61;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;17200:33:61;;1075:5248:69;17200:33:61;;1075:5248:69;17200:33:61;;;;;;1075:5248:69;17200:33:61;;;:::i;:::-;;;1075:5248:69;;;;17200:59:61;1075:5248:69;;17200:33:61;;1075:5248:69;;;;17200:33:61;;;-1:-1:-1;17200:33:61;;;1075:5248:69;;;;;;;;;16463:57:61;1075:5248:69;16463:57:61;;1075:5248:69;16463:57:61;;;;;;1075:5248:69;16463:57:61;;;:::i;:::-;;;317:16:62;;;;;1075:5248:69;;;;;;;-1:-1:-1;1075:5248:69;16463:57:61;;1075:5248:69;;;;16463:57:61;;;-1:-1:-1;16463:57:61;;;1075:5248:69;;;;;;;;;16481:27:61;;;;1075:5248:69;16481:27:61;1075:5248:69;16481:27:61;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;16126:238;1075:5248:69;16281:70:61;16299:52;:34;1075:5248:69;;;;;;;;5196:11;1075:5248;;;;;;;16299:34:61;;:::i;:::-;1075:5248:69;;;;16299:52:61;;:::i;:::-;10744:15;16281:70;:::i;:::-;1075:5248:69;;317:16:62;1075:5248:69;10762:15:61;;317:16:62;;;1075:5248:69;10762:15:61;;317:16:62;16126:238:61;;;15957:51;;16018:25;15957:51;;;15476:319;1075:5248:69;;;;15508:17:61;;;;15588:140;1075:5248:69;15588:140:61;;317:16:62;1075:5248:69;;;;;;;;;317:16:62;1075:5248:69;317:16:62;;;14410:93:61;1075:5248:69;;;;;;;14470:33:61;1075:5248:69;14470:33:61;;5080:4:69;1075:5248;14470:33:61;;1075:5248:69;;14470:33:61;1075:5248:69;14470:33:61;;;;;;;;;;;;;;;;;;;14410:93;;;1075:5248:69;14410:93:61;;;;14470:33;;;;;;;1075:5248:69;14470:33:61;;1075:5248:69;14470:33:61;;;;;;1075:5248:69;14470:33:61;;;:::i;:::-;;;1075:5248:69;;;;;;;;;;;14470:33:61;;;;1075:5248:69;;;;14470:33:61;;;-1:-1:-1;14470:33:61;;14121:58;5080:4:69;;14121:58:61;;317:16:62;;1075:5248:69;;317:16:62;;;1075:5248:69;;317:16:62;;;;1075:5248:69;317:16:62;;1075:5248:69;317:16:62;1075:5248:69;;;317:16:62;;13909:117:61;1075:5248:69;;;;13909:117:61;;;13549:258;13650:43;1075:5248:69;;;;;;13650:43:61;:::i;:::-;1075:5248:69;;;;;;;;;;;13726:26:61;13722:74;13549:258;13722:74;1075:5248:69;;;;13722:74:61;13549:258;;11209:135;;;1075:5248:69;11209:135:61;;1075:5248:69;11209:135:61;;;;;;1075:5248:69;11209:135:61;;;:::i;:::-;;;1075:5248:69;;;;;11209:135:61;;;;;;-1:-1:-1;11209:135:61;;11064:2260;1075:5248:69;;;11802:27:61;1075:5248:69;5196:11;1075:5248;;;;11802:15:61;:27;:::i;:::-;11798:638;;11064:2260;12483:27;:15;5196:11:69;1075:5248;;;;12483:15:61;:27;:::i;:::-;12479:835;;11064:2260;13864:35;11064:2260;;;12479:835;1075:5248:69;;12609:12:61;12605:357;;12479:835;1075:5248:69;;;;;12998:153:61;1075:5248:69;;;13039:63:61;1075:5248:69;13066:16:61;;;1075:5248:69;;;;13084:17:61;;;1075:5248:69;;12483:15:61;5196:11:69;1075:5248;;;;12483:15:61;13039:63;:::i;:::-;1075:5248:69;;13272:19:61;1075:5248:69;12479:835:61;1075:5248:69;;;;;;;;;;;;12483:15:61;1075:5248:69;;;;;;;;;;12998:153:61;13125:26;12483:15;5196:11:69;1075:5248;;;;12483:15:61;13125:26;:::i;:::-;12998:153;;12605:357;12483:15;12730:18;;1075:5248:69;;;;;;;;12805:21:61;;1075:5248:69;;;12714:137:61;1075:5248:69;;12714:137:61;;;;;1075:5248:69;12714:137:61;;1075:5248:69;;;;;;;;;12714:137:61;;;:::i;:::-;;5250:6:69;1075:5248;5250:6;1075:5248;12714:137:61;;;;;;;;;;;12605:357;1075:5248:69;;;12605:357:61;;12714:137;;;1075:5248:69;12714:137:61;;1075:5248:69;12714:137:61;;;;;;1075:5248:69;12714:137:61;;;:::i;:::-;;;1075:5248:69;;;;;12714:137:61;;;;;;-1:-1:-1;12714:137:61;;11798:638;11876:18;;;1075:5248:69;;;;;;;;11947:21:61;;1075:5248:69;;;11860:133:61;1075:5248:69;;11860:133:61;;;;;1075:5248:69;11860:133:61;;1075:5248:69;;;;;;;;;11860:133:61;;;:::i;:::-;;5250:6:69;1075:5248;5250:6;1075:5248;11860:133:61;;;;;;;;;;;11798:638;1075:5248:69;;;;;;;;12105:153:61;1075:5248:69;;;12146:63:61;1075:5248:69;12173:16:61;;;1075:5248:69;;;;;12191:17:61;;1075:5248:69;;;5196:11;1075:5248;;;;11802:15:61;12146:63;:::i;:::-;1075:5248:69;;;;;;;12396:17:61;11798:638;1075:5248:69;;;;;;;;;;;;11876:18:61;1075:5248:69;;;;;;;;;;12105:153:61;12232:26;1075:5248:69;5196:11;1075:5248;;;;11802:15:61;12232:26;:::i;:::-;12105:153;;11860:133;;;1075:5248:69;11860:133:61;;1075:5248:69;11860:133:61;;;;;;1075:5248:69;11860:133:61;;;:::i;:::-;;;1075:5248:69;;;;;11860:133:61;;;;;;-1:-1:-1;11860:133:61;;11068:58;1075:5248:69;;;5196:11;1075:5248;;;;11092:15:61;1075:5248:69;;2397:20:59;11091:35:61;11068:58;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10394:59:61;10441:12;1075:5248:69;;10441:12:61;;;1075:5248:69;;10441:12:61;;1075:5248:69;;;;;;;;;;;10441:12:61;5156:13:69;;;1075:5248;5156:13;;1075:5248;5156:13;;;;;;1075:5248;5156:13;;;:::i;:::-;;;1075:5248;;;;;;;;;;;;5156:13;;;;;;-1:-1:-1;5156:13:69;;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1163:1;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;1751:26;1075:5248;;;;;;:::i;:::-;;;;:::i;:::-;1751:26;;:::i;:::-;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;6260:42;1075:5248;6282:6;1075:5248;;6268:10;:20;6260:42;:::i;:::-;2466:103:28;;:::i;:::-;18871:38:61;1075:5248:69;;;;;;;5517:11;1075:5248;;;5517:11;1075:5248;;;;;;18871:38:61;18837:11;1899:1:28;;1075:5248:69;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1075:5248:69;;;;;-1:-1:-1;1075:5248:69;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;-1:-1:-1;1075:5248:69;;;;;-1:-1:-1;1075:5248:69;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;2318:387;2485:1;;2318:387;2485:1;;;2548:3;1075:5248;;2531:15;;;;;2674:14;1075:5248;2613:9;2644:16;2599:31;2613:9;;;;;:::i;:::-;;2599:31;:::i;:::-;2644:16;;:::i;:::-;2674:14;;:::i;:::-;2548:3;1075:5248;2521:8;;;;2531:15;;;;;;;2318:387::o;1075:5248::-;;;;;;;:::i;:::-;;;;-1:-1:-1;1075:5248:69;;-1:-1:-1;1075:5248:69;;;;;;;;;:::i;:::-;-1:-1:-1;1075:5248:69;;-1:-1:-1;1075:5248:69;;;;;;;;-1:-1:-1;1075:5248:69;;;;-1:-1:-1;1075:5248:69;;;;-1:-1:-1;1075:5248:69;;;;-1:-1:-1;1075:5248:69;;;;-1:-1:-1;1075:5248:69;;;;;;:::o;:::-;10361:11:61;1075:5248:69;;;;;;10361:11:61;-1:-1:-1;1075:5248:69;;;-1:-1:-1;1075:5248:69;;;;;-1:-1:-1;1075:5248:69;:::o;:::-;;;;;;;;-1:-1:-1;1075:5248:69;;;-1:-1:-1;1075:5248:69;;;;;-1:-1:-1;1075:5248:69;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;1075:5248:69;;-1:-1:-1;1075:5248:69;-1:-1:-1;1075:5248:69;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;2575:307:28;1899:1;2702:7;1075:5248:69;2702:18:28;2698:86;;1899:1;2702:7;1899:1;2575:307::o;2698:86::-;2743:30;2702:7;2743:30;;2702:7;2743:30;1790:522:69;1950:22;;;1075:5248;;;;;;1950:46;1946:107;;139:16:62;2208:30:69;2083:90;2261:43;1075:5248;;;2122:18;1075:5248;;;;;2083:90;;:::i;:::-;2208:30;:::i;139:16:62:-;2261:43:69;;:::i;:::-;2254:50;;1790:522::o;1946:107::-;2017:36;;;;;:::i;1075:5248::-;;;;;;;;-1:-1:-1;1075:5248:69;;-1:-1:-1;1075:5248:69;;;;;;-1:-1:-1;1075:5248:69;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;317:16:62;1075:5248:69;317:16:62;;1075:5248:69;317:16:62;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;1075:5248:69;;;;;;;317:16:62;:::o;268:::-;1075:5248:69;;268:16:62;;;;;-1:-1:-1;1075:5248:69;;-1:-1:-1;1075:5248:69;268:16:62;;-1:-1:-1;268:16:62;:::o;4180:582:69:-;;4299:17;;;;:::i;:::-;4286:9;:30;1075:5248;;4338:12;;;;4334:77;;4180:582;4425:10;;;;;4421:71;;4180:582;4521:17;;;;:::i;:::-;4286:9;4552:20;;4548:208;;4180:582;;:::o;4548:208::-;-1:-1:-1;4286:9:69;;;4605:20;4286:9;;;4605:20;:::i;:::-;4722:23;;;;;;;4548:208;1075:5248;;4722:23;;;;;4180:582::o;4722:23::-;1075:5248;;;-1:-1:-1;1075:5248:69;;;;;4722:23;;;-1:-1:-1;4722:23:69;;4421:71;1075:5248;;;4449:26;;;:10;:26;:10;1075:5248;4449:10;1075:5248;4449:26;;;;;;;-1:-1:-1;4449:26:69;;;;;;;;;;;;;4421:71;4449:43;;;;;4421:71;1075:5248;;4449:43;;;;;4421:71;;;4449:43;;;-1:-1:-1;4449:43:69;;:26;;;;;;;;;;;;;;:::i;:::-;;;;4334:77;1075:5248;;;4364:28;;;:10;:28;:10;1075:5248;4364:10;1075:5248;4364:28;;;;;;;-1:-1:-1;4364:28:69;;;;;;;;;;;;;4334:77;4364:47;;;;;4334:77;1075:5248;;4364:47;;;;;4334:77;;;4364:47;;;-1:-1:-1;4364:47:69;;:28;;;;;;;;;;;;;;:::i;:::-;;;;1075:5248;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18922:185:61:-;1075:5248:69;5196:11;1075:5248;;;;;19032:32:61;:68;;;;;19025:75;18922:185;:::o;19032:68::-;1075:5248:69;19068:23:61;;;:32;:23;:11;:23;:::i;:::-;:32;;1075:5248:69;;;;18922:185:61;:::o;1004:867::-;;;1364:12;;;1075:5248:69;1364:15:61;1360:45;;1675:16;2214:21;1675:16;2214:63;1675:16;1075:5248:69;2028:14:61;1075:5248:69;;;;2028:14:61;;1075:5248:69;;;1878:171:61;;1675:16;2214:21;;:::i;:::-;2247:12;1075:5248:69;1364:12:61;2247;;;;1075:5248:69;;2264:12:61;;1075:5248:69;;;2214:63:61;;:::i;:::-;1004:867;:::o;1360:45::-;-1:-1:-1;;;;;;1393:12:61:o;7205:420::-;7530:1;;210:7:62;7482:44:61;;210:7:62;;7482:136:61;;7205:420;:::o;7482:136::-;1075:5248:69;210:7:62;7556:52:61;1075:5248:69;7160:38:61;;1075:5248:69;7160:38:61;;;;7556:62;;7205:420;:::o;7160:38::-;1075:5248:69;;;;;;;;;540:457:61;;;;;816:12;;;1075:5248:69;816:15:61;812:45;;878:16;2620:21;2578:17;2507:38;878:16;;2620:36;878:16;1075:5248:69;2028:14:61;1075:5248:69;;;;2028:14:61;;1075:5248:69;;;1878:171:61;;878:16;2507:38;;:::i;:::-;2578:17;;:::i;:::-;2620:21;;:::i;:::-;:36;:::i;812:45::-;845:12;;;;-1:-1:-1;845:12:61;-1:-1:-1;845:12:61;:::o;252:130:60:-;1075:5248:69;;;;2397:20:59;333:21:60;;;:42;;;326:49;252:130;:::o;333:42::-;1075:5248:69;;;;;;2397:20:59;358:17:60;252:130;:::o;430:307::-;1075:5248:69;;527:23:60;1075:5248:69;;;527:23:60;:::i;:::-;1075:5248:69;;;;2397:20:59;;560:50:60;;631:19;;712:18;631:19;;:::i;:::-;678:15;;712:18;;:::i;560:50::-;593:17;;:::o;1075:5248:69:-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;839:794:60:-;1075:5248:69;839:794:60;;1075:5248:69;1203:19:60;1075:5248:69;980:23:60;1075:5248:69;;;980:23:60;:::i;:::-;1075:5248:69;;;;1203:19:60;:::i;:::-;1075:5248:69;;;;1281:5:60;;;;;:::i;:::-;1075:5248:69;-1:-1:-1;1075:5248:69;;;;;;;;;;;;;;;;;;;;1479:5:60;1467:9;;;;:::i;:::-;1075:5248:69;;-1:-1:-1;1075:5248:69;;;;;;;;;;;;;;;;;;;1608:18:60;;;:::i;884:1196:59:-;801:20;1108:25;;:30;1104:44;;691:11;1213:24;;1075:5248:69;;1242:2:59;801:20;1075:5248:69;;;1263:11:59;;516:4;;636:11;746;1342:25;;1075:5248:69;;1382:15:59;;;1408:1;1075:5248:69;1378:57:59;;1501:25;1497:48;;1378:57;469:3;;1075:5248:69;;469:3:59;;1075:5248:69;;;1843:9:59;;1839:205;1075:5248:69;;;;636:11:59;1075:5248:69;884:1196:59;:::o;1839:205::-;1075:5248:69;1942:9:59;;1075:5248:69;;;801:20:59;884:1196;:::o;1497:48::-;1075:5248:69;636:11:59;;;;;1497:48;;1378:57;865:11;1424;1378:57;;;516:4;;1075:5248:69;;516:4:59;;;;;;;;1075:5248:69;516:4:59;;;1075:5248:69;516:4:59;1075:5248:69;;;516:4:59;;1104:44;1140:8;1075:5248:69;1140:8:59;:::o;8048:1571:61:-;8398:11;;1075:5248:69;;8048:1571:61;;8352:15;1075:5248:69;;;8048:1571:61;;;1075:5248:69;;;;8398:11:61;1075:5248:69;;;;;;8523:23:61;1075:5248:69;;;8398:11:61;1075:5248:69;;;;;;;:::i;:::-;8523:23:61;;;:::i;:::-;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1899:1:28;1075:5248:69;;;;;;;1899:1:28;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8048:1571:61;1075:5248:69;;;;;;;;;;;;;;;;;;;;;8586:21:61;;;;1075:5248:69;8586:21:61;1075:5248:69;;8586:21:61;;;1075:5248:69;;;;;;;;;;;;8352:15:61;1075:5248:69;;;;;;;;;;;;8795:27:61;8837:8;;9102:20;;;;8832:592;8872:3;8849:14;;1075:5248:69;;8847:23:61;;;;;8917:17;;;;:::i;:::-;;1075:5248:69;8992:20:61;;1075:5248:69;;;;8992:44:61;;;8872:3;8988:79;;1075:5248:69;;;;;;;;;;;;8398:11:61;9170:23;1075:5248:69;;;;;;:::i;:::-;9170:23:61;;;:::i;:::-;-1:-1:-1;1075:5248:69;7784:27:61;;1075:5248:69;7784:27:61;;1075:5248:69;7784:78:61;;8398:11;7814:29;7757:106;7826:17;1075:5248:69;;7826:17:61;;1075:5248:69;;7814:29:61;;:::i;7757:106::-;1075:5248:69;7898:25:61;;1075:5248:69;7898:25:61;;1075:5248:69;7898:72:61;;1075:5248:69;7926:27:61;7938:15;;;1075:5248:69;7938:15:61;;1075:5248:69;;7926:27:61;;:::i;:::-;1075:5248:69;;;;;;;;;;;;;;;;;;317:16:62;;;;;;;1075:5248:69;9222:18:61;;1075:5248:69;;;;;9222:40:61;;;7898:72;9218:83;;;7898:72;8398:11;1075:5248:69;8837:8:61;;9218:83;8398:11;;-1:-1:-1;9218:83:61;;9222:40;1075:5248:69;9244:18:61;;;1075:5248:69;;;9222:40:61;;;7898:72;7955:15;1075:5248:69;7955:15:61;;1075:5248:69;7955:15:61;;1075:5248:69;;7898:72:61;;7784:78;7845:17;7757:106;8398:11;1075:5248:69;;7845:17:61;;1075:5248:69;;7784:78:61;;;1075:5248:69;;;;;;;;;;8992:44:61;9016:20;1075:5248:69;9016:20:61;;1075:5248:69;;;8992:44:61;;8847:23;;;;;;;;;;;;;;9469:143;;8832:592;8048:1571;;;;;;:::o;9469:143::-;1075:5248:69;9543:11:61;1075:5248:69;;9543:11:61;;;:20;:11;;:20;:::i;:::-;1075:5248:69;;;;;;9596:11:61;;:15;1075:5248:69;;;9521:91:61;1075:5248:69;;9521:91:61;;;;;;;1075:5248:69;9521:91:61;;1075:5248:69;9521:91:61;;;:::i;:::-;;1075:5248:69;;9521:91:61;;;;;;;;;;;9469:143;9501:17;;1075:5248:69;9501:17:61;1899:1:28;9469:143:61;;;;;;;;9521:91;;;;;1075:5248:69;9521:91:61;;1075:5248:69;9521:91:61;;;;;;1075:5248:69;9521:91:61;;;:::i;:::-;;;1075:5248:69;;;;-1:-1:-1;1075:5248:69;;;9521:91:61;;;;;;-1:-1:-1;9521:91:61;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;1075:5248:69;;;;;;;;;;;;317:16:62;;;;;;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:16:62;;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8398:11:61;1075:5248:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18211:286:61;18317:24;18211:286;18317:14;:24;:::i;:::-;1075:5248:69;;;;;;;;;18369:28:61;1075:5248:69;;;;;;;7160:38:61;;1075:5248:69;7160:38:61;;;;1075:5248:69;;;;;;18588:11:61;;18439:10;1075:5248:69;;;;18439:10:61;;;18211:286;;;:::o;18451:3::-;1075:5248:69;18588:23:61;:32;:23;1075:5248:69;18588:23:61;;;:::i;:::-;:32;;1075:5248:69;;;;;;;;18642:32:61;1075:5248:69;;;;;;;;18642:32:61;1075:5248:69;;18412:25:61;;1639:695:60;;;1075:5248:69;;;;;;;;;;;;;;;2013:16:60;;;-1:-1:-1;1075:5248:69;2084:6:60;;1075:5248:69;;2084:23:60;1075:5248:69;2009:308:60;1639:695::o;2009:308::-;1075:5248:69;-1:-1:-1;1075:5248:69;;-1:-1:-1;1075:5248:69;;2296:17:60;2009:308;1639:695::o;2288:29::-;1075:5248:69;1004:867:61;:::o;1075:5248:69:-;;;;;;;;;;;;;;;:::o;2669:591:61:-;2793:1;;;2844:3;2821:14;;;;1075:5248:69;;2819:23:61;;;;;2878:35;:17;;1075:5248:69;2878:17:61;;:::i;:::-;;:35;1075:5248:69;;;2793:1:61;2957:9;;;2984:8;2821:14;2984:8;;3222:21;1075:5248:69;2984:8:61;;2953:221;3222:21;:::i;:::-;2844:3;1075:5248:69;2809:8:61;;;;;2953:221;1075:5248:69;;3102:11:61;1075:5248:69;;;;;3102:11:61;;;:::i;:::-;:26;3098:61;;2953:221;3222:21;2821:14;2953:221;1075:5248:69;2953:221:61;3222:21;:::i;3098:61::-;1075:5248:69;;;;;;;3098:61:61;1075:5248:69;;2793:1:61;1075:5248:69;;;;;2793:1:61;1075:5248:69;2819:23:61;;;;;;2669:591::o","linkReferences":{},"immutableReferences":{"51615":[{"start":1001,"length":32},{"start":2158,"length":32},{"start":2694,"length":32},{"start":7190,"length":32},{"start":16800,"length":32},{"start":17010,"length":32}],"51618":[{"start":1098,"length":32},{"start":2791,"length":32},{"start":6145,"length":32},{"start":6871,"length":32},{"start":9476,"length":32},{"start":11846,"length":32},{"start":12104,"length":32}],"51621":[{"start":319,"length":32},{"start":662,"length":32},{"start":2269,"length":32}]}},"methodIdentifiers":{"cancelAllDexorders()":"2800c78f","cancelDexorder(uint64)":"8489f9bf","execute(uint64,uint8,(uint256))":"6e98833d","feeManager()":"d0fb0203","numSwapOrders()":"e78f84e7","orderCanceled(uint64)":"a449d030","placeDexorder((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]))":"da1c795f","placeDexorders((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],uint8)":"89a44acb","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[]),(uint8,uint8,uint8,uint8,uint8))":"4c153087","placementFee((address,address,(uint8,uint24),uint256,uint256,bool,bool,uint64,(uint16,bool,bool,bool,bool,bool,bool,bool,bool,uint16,uint24,uint32,uint32,(uint32,uint32),(uint32,uint32))[])[],(uint8,uint8,uint8,uint8,uint8))":"2e690bb7","swapOrderStatus(uint64)":"77bad6b5","unwrap(uint256)":"de0e9a3e","vaultImplDidChange(address)":"58b72a09","version()":"54fd4d50","wrap(uint256)":"ea598cb0","wrapper()":"ac210cc7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router_\",\"type\":\"address\"},{\"internalType\":\"contract IFeeManager\",\"name\":\"feeManager_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"weth9_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"cancelAllIndex\",\"type\":\"uint64\"}],\"name\":\"DexorderCancelAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"DexorderSwapCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"trancheIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fillFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nextExecutionTime\",\"type\":\"uint32\"}],\"name\":\"DexorderSwapFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"startOrderIndex\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"numOrders\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"name\":\"DexorderSwapPlaced\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelAllDexorders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"cancelDexorder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"tranche_index\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"internalType\":\"struct PriceProof\",\"name\":\"proof\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeManager\",\"outputs\":[{\"internalType\":\"contract IFeeManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numSwapOrders\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"num\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"orderCanceled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"placeDexorder\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"internalType\":\"enum OcoMode\",\"name\":\"ocoMode\",\"type\":\"uint8\"}],\"name\":\"placeDexorders\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"orderFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"orderExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasFee\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"gasExp\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"}],\"internalType\":\"struct IFeeManager.FeeSchedule\",\"name\":\"sched\",\"type\":\"tuple\"}],\"name\":\"placementFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"orderFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"orderIndex\",\"type\":\"uint64\"}],\"name\":\"swapOrderStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum Exchange\",\"name\":\"exchange\",\"type\":\"uint8\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"internalType\":\"struct Route\",\"name\":\"route\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minFillAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"amountIsInput\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"outputDirectlyToOwner\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"conditionalOrder\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"fraction\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"startTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"endTimeIsRelative\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsBarrier\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"marketOrder\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"minIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"maxIsRatio\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"_reserved7\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"rateLimitFraction\",\"type\":\"uint16\"},{\"internalType\":\"uint24\",\"name\":\"rateLimitPeriod\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"minLine\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"float\",\"name\":\"intercept\",\"type\":\"uint32\"},{\"internalType\":\"float\",\"name\":\"slope\",\"type\":\"uint32\"}],\"internalType\":\"struct Line\",\"name\":\"maxLine\",\"type\":\"tuple\"}],\"internalType\":\"struct Tranche[]\",\"name\":\"tranches\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"fillFeeHalfBps\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"ocoGroup\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"originalOrder\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"startPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"filled\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"activationTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"startTime\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"endTime\",\"type\":\"uint32\"}],\"internalType\":\"struct TrancheStatus[]\",\"name\":\"trancheStatus\",\"type\":\"tuple[]\"}],\"internalType\":\"struct SwapOrderStatus\",\"name\":\"status\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unwrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldAddress\",\"type\":\"address\"}],\"name\":\"vaultImplDidChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"wrap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrapper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/VaultImpl.sol\":\"VaultImpl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d\",\"urls\":[\"bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7\",\"dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f\",\"urls\":[\"bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3\",\"dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee\",\"urls\":[\"bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf\",\"dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2\",\"urls\":[\"bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325\",\"dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe\",\"urls\":[\"bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a\",\"dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c\",\"urls\":[\"bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a\",\"dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IRouter","name":"router_","type":"address"},{"internalType":"contract IFeeManager","name":"feeManager_","type":"address"},{"internalType":"address","name":"weth9_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"uint64","name":"cancelAllIndex","type":"uint64","indexed":false}],"type":"event","name":"DexorderCancelAll","anonymous":false},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64","indexed":false}],"type":"event","name":"DexorderSwapCanceled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64","indexed":true},{"internalType":"uint8","name":"trancheIndex","type":"uint8","indexed":true},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"uint256","name":"fillFee","type":"uint256","indexed":false},{"internalType":"uint32","name":"nextExecutionTime","type":"uint32","indexed":false}],"type":"event","name":"DexorderSwapFilled","anonymous":false},{"inputs":[{"internalType":"uint64","name":"startOrderIndex","type":"uint64","indexed":true},{"internalType":"uint8","name":"numOrders","type":"uint8","indexed":false},{"internalType":"uint256","name":"orderFee","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasFee","type":"uint256","indexed":false}],"type":"event","name":"DexorderSwapPlaced","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cancelAllDexorders"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"cancelDexorder"},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"},{"internalType":"uint8","name":"tranche_index","type":"uint8"},{"internalType":"struct PriceProof","name":"proof","type":"tuple","components":[{"internalType":"uint256","name":"proof","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[],"stateMutability":"view","type":"function","name":"feeManager","outputs":[{"internalType":"contract IFeeManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numSwapOrders","outputs":[{"internalType":"uint64","name":"num","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"orderCanceled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]}],"stateMutability":"payable","type":"function","name":"placeDexorder"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"enum OcoMode","name":"ocoMode","type":"uint8"}],"stateMutability":"payable","type":"function","name":"placeDexorders"},{"inputs":[{"internalType":"struct SwapOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"struct IFeeManager.FeeSchedule","name":"sched","type":"tuple","components":[{"internalType":"uint8","name":"orderFee","type":"uint8"},{"internalType":"uint8","name":"orderExp","type":"uint8"},{"internalType":"uint8","name":"gasFee","type":"uint8"},{"internalType":"uint8","name":"gasExp","type":"uint8"},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"}]}],"stateMutability":"view","type":"function","name":"placementFee","outputs":[{"internalType":"uint256","name":"orderFee","type":"uint256"},{"internalType":"uint256","name":"gasFee","type":"uint256"}]},{"inputs":[{"internalType":"uint64","name":"orderIndex","type":"uint64"}],"stateMutability":"view","type":"function","name":"swapOrderStatus","outputs":[{"internalType":"struct SwapOrderStatus","name":"status","type":"tuple","components":[{"internalType":"struct SwapOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"struct Route","name":"route","type":"tuple","components":[{"internalType":"enum Exchange","name":"exchange","type":"uint8"},{"internalType":"uint24","name":"fee","type":"uint24"}]},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minFillAmount","type":"uint256"},{"internalType":"bool","name":"amountIsInput","type":"bool"},{"internalType":"bool","name":"outputDirectlyToOwner","type":"bool"},{"internalType":"uint64","name":"conditionalOrder","type":"uint64"},{"internalType":"struct Tranche[]","name":"tranches","type":"tuple[]","components":[{"internalType":"uint16","name":"fraction","type":"uint16"},{"internalType":"bool","name":"startTimeIsRelative","type":"bool"},{"internalType":"bool","name":"endTimeIsRelative","type":"bool"},{"internalType":"bool","name":"minIsBarrier","type":"bool"},{"internalType":"bool","name":"maxIsBarrier","type":"bool"},{"internalType":"bool","name":"marketOrder","type":"bool"},{"internalType":"bool","name":"minIsRatio","type":"bool"},{"internalType":"bool","name":"maxIsRatio","type":"bool"},{"internalType":"bool","name":"_reserved7","type":"bool"},{"internalType":"uint16","name":"rateLimitFraction","type":"uint16"},{"internalType":"uint24","name":"rateLimitPeriod","type":"uint24"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"},{"internalType":"struct Line","name":"minLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]},{"internalType":"struct Line","name":"maxLine","type":"tuple","components":[{"internalType":"float","name":"intercept","type":"uint32"},{"internalType":"float","name":"slope","type":"uint32"}]}]}]},{"internalType":"uint8","name":"fillFeeHalfBps","type":"uint8"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint64","name":"ocoGroup","type":"uint64"},{"internalType":"uint64","name":"originalOrder","type":"uint64"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"struct TrancheStatus[]","name":"trancheStatus","type":"tuple[]","components":[{"internalType":"uint256","name":"filled","type":"uint256"},{"internalType":"uint32","name":"activationTime","type":"uint32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"endTime","type":"uint32"}]}]}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unwrap"},{"inputs":[{"internalType":"address","name":"oldAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"vaultImplDidChange"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"wrap"},{"inputs":[],"stateMutability":"view","type":"function","name":"wrapper","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/VaultImpl.sol":"VaultImpl"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"src/core/IEEE754.sol":{"keccak256":"0x86db8f6fbcdf1e90d8316a48e2c90ae91570a3ead4c2122f7b14634164b31a0d","urls":["bzz-raw://ec90cb6e7467a1d619567cc22e434d0f9cf09010f7cf7a859f27ec36e2d57ab7","dweb:/ipfs/QmaiDfRc2jGuBYdahPiN3ACoTon1Ph1YypxUT29LvHmsGp"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x982b566e248f0ecd3d6a2ffc6fe6dbcdb6378a5378c7d20c14e95dd4035b2f6f","urls":["bzz-raw://720de604abe807f17b6e713fdaaf00e95c2a62bb4eff48398bbf68e7ffa2cba3","dweb:/ipfs/QmWqCowXdCgHMYesVWBYTRSMR4f3zf8hEzhTydEVuJY5qx"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xe76c55bcdc996488fe5fde16f19990efab09acc9201aef5a4c9c4a7c789da8ee","urls":["bzz-raw://d21e0ce70134edfa0b2d287b88d415f8f210f279c5930fc9441df0aab2b41ddf","dweb:/ipfs/QmTW9SULEgg9N2agVuoQLBwC7MXoS6TwbWvWeUq5XW9Hwe"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0x5ba180a578434fdb479cab6d9020584bdc03ab6434fde6e8b53508b536e24bc2","urls":["bzz-raw://78b321efa9d70859f5f846db64401083694bfa554a3d77615887947659be8325","dweb:/ipfs/QmVZmgEgd6ynzrF82ACergs7XAsgZThcbDpYyja2NTHtxK"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0x6477ba228366b01b8e7967d7df167cf62002062591d1de26bb6b4ba12605dcbe","urls":["bzz-raw://da3a6034d0870283a2cbcb5e1cbe83a40fb20ae32f38410d1f9dba87b401b29a","dweb:/ipfs/QmY6yDznvZUQcSugj7e31X2fo3vMZna8sA3VNDiZs1a7ot"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x59059bdc3fe91e0285977d15e89723c5eac10b0fa11b325d9b589ff9fbc2612c","urls":["bzz-raw://8a7b8c7c3bd785cb6b29082d87368fd5b57d6cd9212cab0d497e011dc0a4cd7a","dweb:/ipfs/QmRJ7BnWr71vH6x1YD9VshMNYRa1rt5xH4JpkXogB4HFSU"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null}},"version":1},"id":69} \ No newline at end of file diff --git a/deployment/arb1/out/Vm.sol/Vm.json b/deployment/arb1/out/Vm.sol/Vm.json deleted file mode 100644 index 051997a..0000000 --- a/deployment/arb1/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":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"allowCheatcodes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"blobBaseFee","inputs":[{"name":"newBlobBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blobhashes","inputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"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":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","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":"deleteSnapshot","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"deleteSnapshots","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"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":"dumpState","inputs":[{"name":"pathToStateJson","type":"string","internalType":"string"}],"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":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"gas","type":"uint64","internalType":"uint64"},{"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":"gas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"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"},{"name":"count","type":"uint64","internalType":"uint64"}],"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":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"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":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCallMinGas","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint64","internalType":"uint64"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"count","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[],"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":"expectEmit","inputs":[{"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":"expectSafeMemory","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectSafeMemoryCall","inputs":[{"name":"min","type":"uint64","internalType":"uint64"},{"name":"max","type":"uint64","internalType":"uint64"}],"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":"path","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":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlobhashes","inputs":[],"outputs":[{"name":"hashes","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"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":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"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":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"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":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","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":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"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":"loadAllocs","inputs":[{"name":"pathToAllocsJson","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCallRevert","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"revertData","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":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"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":"prevrandao","inputs":[{"name":"newPrevrandao","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prevrandao","inputs":[{"name":"newPrevrandao","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readCallers","inputs":[],"outputs":[{"name":"callerMode","type":"uint8","internalType":"enum VmSafe.CallerMode"},{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"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":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","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":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resetNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"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":"revertToAndDelete","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":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"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":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","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":"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":"serializeUintToHex","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":"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":"setNonceUnsafe","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"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":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"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":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"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":"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":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"skip","inputs":[{"name":"skipTest","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"snapshot","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"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":"startMappingRecording","inputs":[],"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":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopExpectSafeMemory","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","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":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"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":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","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":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"txGasPrice","inputs":[{"name":"newGasPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"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"},{"type":"function","name":"writeToml","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":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","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","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","blobBaseFee(uint256)":"6d315d7e","blobhashes(bytes32[])":"129de7eb","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deal(address,uint256)":"c88a5e6d","deleteSnapshot(uint256)":"a6368557","deleteSnapshots()":"421ae469","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","difficulty(uint256)":"46cc92d9","dumpState(string)":"709ecd3f","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","envExists(string)":"ce8365f9","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","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","expectCall(address,bytes)":"bd6af434","expectCall(address,bytes,uint64)":"c1adbbff","expectCall(address,uint256,bytes)":"f30c7ba3","expectCall(address,uint256,bytes,uint64)":"a2b1a1ae","expectCall(address,uint256,uint64,bytes)":"23361207","expectCall(address,uint256,uint64,bytes,uint64)":"65b7b7cc","expectCallMinGas(address,uint256,uint64,bytes)":"08e4e116","expectCallMinGas(address,uint256,uint64,bytes,uint64)":"e13a1834","expectEmit()":"440ed10d","expectEmit(address)":"86b9620d","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectRevert()":"f4844814","expectRevert(bytes)":"f28dceb3","expectRevert(bytes4)":"c31eb0e0","expectSafeMemory(uint64,uint64)":"6d016688","expectSafeMemoryCall(uint64,uint64)":"05838bf4","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlobBaseFee()":"1f6d6ef7","getBlobhashes()":"f56ff18b","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","isPersistent(address)":"d92d8efd","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","load(address,bytes32)":"667f9d70","loadAllocs(string)":"b3a056d7","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","mockCallRevert(address,bytes,bytes)":"dbaad147","mockCallRevert(address,uint256,bytes,bytes)":"d23cd037","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","prevrandao(bytes32)":"3b925549","prevrandao(uint256)":"9cb1c0d4","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptUint(string)":"652fd489","readCallers()":"4ad0bac9","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resetNonce(address)":"1c72346d","resumeGasMetering()":"2bcd50e0","revertTo(uint256)":"44d7f0a4","revertToAndDelete(uint256)":"03e0aca9","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpc(string,string)":"1206c8a8","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","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","setNonceUnsafe(address,uint64)":"9b67b21c","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","skip(bool)":"dd82d13e","sleep(uint256)":"fa9d8713","snapshot()":"9711715a","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopExpectSafeMemory()":"0956441b","stopMappingRecording()":"0d4aae9b","stopPrank()":"90c5013b","store(address,bytes32,bytes32)":"70ca10bb","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","txGasPrice(uint256)":"48f50c0f","unixTime()":"625387dc","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBlobBaseFee\",\"type\":\"uint256\"}],\"name\":\"blobBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"name\":\"blobhashes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"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\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"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\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"deleteSnapshot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deleteSnapshots\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"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\":\"pathToStateJson\",\"type\":\"string\"}],\"name\":\"dumpState\",\"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\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"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\":\"uint64\",\"name\":\"gas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"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\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCall\",\"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\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"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\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minGas\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"count\",\"type\":\"uint64\"}],\"name\":\"expectCallMinGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"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\"}],\"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\":\"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\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"expectSafeMemoryCall\",\"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\":\"path\",\"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\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobhashes\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"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\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"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\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"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\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"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\":\"pathToAllocsJson\",\"type\":\"string\"}],\"name\":\"loadAllocs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"mockCallRevert\",\"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\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"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\":[{\"internalType\":\"bytes32\",\"name\":\"newPrevrandao\",\"type\":\"bytes32\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrevrandao\",\"type\":\"uint256\"}],\"name\":\"prevrandao\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readCallers\",\"outputs\":[{\"internalType\":\"enum VmSafe.CallerMode\",\"name\":\"callerMode\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"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\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"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\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"resetNonce\",\"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\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertToAndDelete\",\"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\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"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\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"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\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonceUnsafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"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\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"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\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"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\":\"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\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"skipTest\",\"type\":\"bool\"}],\"name\":\"skip\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"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\":\"startMappingRecording\",\"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\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopExpectSafeMemory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"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\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"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\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"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\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPrice\",\"type\":\"uint256\"}],\"name\":\"txGasPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"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\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"allowCheatcodes(address)\":{\"notice\":\"In forking mode, explicitly grant the given address cheatcode access.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"blobBaseFee(uint256)\":{\"notice\":\"Sets `block.blobbasefee`\"},\"blobhashes(bytes32[])\":{\"notice\":\"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"chainId(uint256)\":{\"notice\":\"Sets `block.chainid`.\"},\"clearMockedCalls()\":{\"notice\":\"Clears all mocked calls.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"coinbase(address)\":{\"notice\":\"Sets `block.coinbase`.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createFork(string)\":{\"notice\":\"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork.\"},\"createFork(string,bytes32)\":{\"notice\":\"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork.\"},\"createFork(string,uint256)\":{\"notice\":\"Creates a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createSelectFork(string)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork.\"},\"createSelectFork(string,bytes32)\":{\"notice\":\"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork.\"},\"createSelectFork(string,uint256)\":{\"notice\":\"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deal(address,uint256)\":{\"notice\":\"Sets an address' balance.\"},\"deleteSnapshot(uint256)\":{\"notice\":\"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist.\"},\"deleteSnapshots()\":{\"notice\":\"Removes _all_ snapshots previously created by `snapshot`.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"difficulty(uint256)\":{\"notice\":\"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions.\"},\"dumpState(string)\":{\"notice\":\"Dump a genesis JSON file's `allocs` to disk.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"etch(address,bytes)\":{\"notice\":\"Sets an address' code.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"expectCall(address,bytes)\":{\"notice\":\"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match.\"},\"expectCall(address,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified calldata.\"},\"expectCall(address,uint256,bytes)\":{\"notice\":\"Expects a call to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value` and calldata.\"},\"expectCall(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCall(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata.\"},\"expectCallMinGas(address,uint256,uint64,bytes)\":{\"notice\":\"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectCallMinGas(address,uint256,uint64,bytes,uint64)\":{\"notice\":\"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas.\"},\"expectEmit()\":{\"notice\":\"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data.\"},\"expectEmit(address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectEmit(bool,bool,bool,bool)\":{\"notice\":\"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans).\"},\"expectEmit(bool,bool,bool,bool,address)\":{\"notice\":\"Same as the previous method, but also checks supplied address against emitting contract.\"},\"expectRevert()\":{\"notice\":\"Expects an error on next call with any revert data.\"},\"expectRevert(bytes)\":{\"notice\":\"Expects an error on next call that exactly matches the revert data.\"},\"expectRevert(bytes4)\":{\"notice\":\"Expects an error on next call that starts with the revert data.\"},\"expectSafeMemory(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"expectSafeMemoryCall(uint64,uint64)\":{\"notice\":\"Only allows memory writes to offsets [0x00, 0x60) \\u222a [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set.\"},\"fee(uint256)\":{\"notice\":\"Sets `block.basefee`.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlobhashes()\":{\"notice\":\"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert.\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"isPersistent(address)\":{\"notice\":\"Returns true if the account is marked as persistent.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"loadAllocs(string)\":{\"notice\":\"Load a genesis JSON file's `allocs` into the in-memory revm state.\"},\"makePersistent(address)\":{\"notice\":\"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks.\"},\"makePersistent(address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address,address,address)\":{\"notice\":\"See `makePersistent(address)`.\"},\"makePersistent(address[])\":{\"notice\":\"See `makePersistent(address)`.\"},\"mockCall(address,bytes,bytes)\":{\"notice\":\"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked.\"},\"mockCall(address,uint256,bytes,bytes)\":{\"notice\":\"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity.\"},\"mockCallRevert(address,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with specified revert data.\"},\"mockCallRevert(address,uint256,bytes,bytes)\":{\"notice\":\"Reverts a call to an address with a specific `msg.value`, with specified revert data.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"prank(address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address.\"},\"prank(address,address)\":{\"notice\":\"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input.\"},\"prevrandao(bytes32)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"prevrandao(uint256)\":{\"notice\":\"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"readCallers()\":{\"notice\":\"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resetNonce(address)\":{\"notice\":\"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"revertTo(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`.\"},\"revertToAndDelete(uint256)\":{\"notice\":\"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist.\"},\"revokePersistent(address)\":{\"notice\":\"Revokes persistent status from the address, previously added via `makePersistent`.\"},\"revokePersistent(address[])\":{\"notice\":\"See `revokePersistent(address)`.\"},\"roll(uint256)\":{\"notice\":\"Sets `block.height`.\"},\"rollFork(bytes32)\":{\"notice\":\"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block.\"},\"rollFork(uint256)\":{\"notice\":\"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork.\"},\"rollFork(uint256,bytes32)\":{\"notice\":\"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block.\"},\"rollFork(uint256,uint256)\":{\"notice\":\"Updates the given fork to given block number.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"selectFork(uint256)\":{\"notice\":\"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"setNonce(address,uint64)\":{\"notice\":\"Sets the nonce of an account. Must be higher than the current nonce of the account.\"},\"setNonceUnsafe(address,uint64)\":{\"notice\":\"Sets the nonce of an account to an arbitrary value.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"skip(bool)\":{\"notice\":\"Marks a test as skipped. Must be called at the top of the test.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"snapshot()\":{\"notice\":\"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startPrank(address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called.\"},\"startPrank(address,address)\":{\"notice\":\"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopExpectSafeMemory()\":{\"notice\":\"Stops all safe memory expectation in the current subcontext.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"stopPrank()\":{\"notice\":\"Resets subsequent calls' `msg.sender` to be `address(this)`.\"},\"store(address,bytes32,bytes32)\":{\"notice\":\"Stores a value to an address' storage slot.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"transact(bytes32)\":{\"notice\":\"Fetches the given transaction from the active fork and executes it on the current state.\"},\"transact(uint256,bytes32)\":{\"notice\":\"Fetches the given transaction from the given fork and executes it on the current state.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"txGasPrice(uint256)\":{\"notice\":\"Sets `tx.gasprice`.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"warp(uint256)\":{\"notice\":\"Sets `block.timestamp`.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used in tests, but it is not recommended to use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/Vm.sol\":\"Vm\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCheatcodes"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"uint256","name":"newBlobBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"blobBaseFee"},{"inputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"blobhashes"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"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":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"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":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deal"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshot","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deleteSnapshots"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"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":"pathToStateJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"dumpState"},{"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"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"gas","type":"uint64"},{"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":"uint64","name":"gas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"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"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"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":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"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":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint64","name":"minGas","type":"uint64"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint64","name":"count","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectCallMinGas"},{"inputs":[],"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"}],"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":"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":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemory"},{"inputs":[{"internalType":"uint64","name":"min","type":"uint64"},{"internalType":"uint64","name":"max","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"expectSafeMemoryCall"},{"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":"path","type":"string"}],"stateMutability":"view","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":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlobhashes","outputs":[{"internalType":"bytes32[]","name":"hashes","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","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":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","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":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"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":"pathToAllocsJson","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"loadAllocs"},{"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":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCallRevert"},{"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":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"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":[{"internalType":"bytes32","name":"newPrevrandao","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[{"internalType":"uint256","name":"newPrevrandao","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"prevrandao"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"readCallers","outputs":[{"internalType":"enum VmSafe.CallerMode","name":"callerMode","type":"uint8"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"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":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","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":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"resetNonce"},{"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":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertToAndDelete","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":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"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":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","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":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","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":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonceUnsafe"},{"inputs":[{"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":[{"internalType":"address","name":"signer","type":"address"},{"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":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"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":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"bool","name":"skipTest","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"skip"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"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":"startMappingRecording"},{"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":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopExpectSafeMemory"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"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":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"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":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","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":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[{"internalType":"uint256","name":"newGasPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"txGasPrice"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"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"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"activeFork()":{"notice":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"allowCheatcodes(address)":{"notice":"In forking mode, explicitly grant the given address cheatcode access."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"blobBaseFee(uint256)":{"notice":"Sets `block.blobbasefee`"},"blobhashes(bytes32[])":{"notice":"Sets the blobhashes in the transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"chainId(uint256)":{"notice":"Sets `block.chainid`."},"clearMockedCalls()":{"notice":"Clears all mocked calls."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"coinbase(address)":{"notice":"Sets `block.coinbase`."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createFork(string)":{"notice":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"createFork(string,bytes32)":{"notice":"Creates a new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"createFork(string,uint256)":{"notice":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"createSelectFork(string)":{"notice":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"createSelectFork(string,bytes32)":{"notice":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in, replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"createSelectFork(string,uint256)":{"notice":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deal(address,uint256)":{"notice":"Sets an address' balance."},"deleteSnapshot(uint256)":{"notice":"Removes the snapshot with the given ID created by `snapshot`. Takes the snapshot ID to delete. Returns `true` if the snapshot was successfully deleted. Returns `false` if the snapshot does not exist."},"deleteSnapshots()":{"notice":"Removes _all_ snapshots previously created by `snapshot`."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"difficulty(uint256)":{"notice":"Sets `block.difficulty`. Not available on EVM versions from Paris onwards. Use `prevrandao` instead. Reverts if used on unsupported EVM versions."},"dumpState(string)":{"notice":"Dump a genesis JSON file's `allocs` to disk."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"etch(address,bytes)":{"notice":"Sets an address' code."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"expectCall(address,bytes)":{"notice":"Expects a call to an address with the specified calldata. Calldata can either be a strict or a partial match."},"expectCall(address,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified calldata."},"expectCall(address,uint256,bytes)":{"notice":"Expects a call to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"expectCall(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"expectCall(address,uint256,uint64,bytes,uint64)":{"notice":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"expectCallMinGas(address,uint256,uint64,bytes)":{"notice":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectCallMinGas(address,uint256,uint64,bytes,uint64)":{"notice":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"expectEmit()":{"notice":"Prepare an expected log with all topic and data checks enabled. Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data."},"expectEmit(address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectEmit(bool,bool,bool,bool)":{"notice":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.). Call this function, then emit an event, then call a function. Internally after the call, we check if logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"expectEmit(bool,bool,bool,bool,address)":{"notice":"Same as the previous method, but also checks supplied address against emitting contract."},"expectRevert()":{"notice":"Expects an error on next call with any revert data."},"expectRevert(bytes)":{"notice":"Expects an error on next call that exactly matches the revert data."},"expectRevert(bytes4)":{"notice":"Expects an error on next call that starts with the revert data."},"expectSafeMemory(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"expectSafeMemoryCall(uint64,uint64)":{"notice":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext. If any other memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"fee(uint256)":{"notice":"Sets `block.basefee`."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlobhashes()":{"notice":"Gets the blockhashes from the current transaction. Not available on EVM versions before Cancun. If used on unsupported EVM versions it will revert."},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"isPersistent(address)":{"notice":"Returns true if the account is marked as persistent."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"loadAllocs(string)":{"notice":"Load a genesis JSON file's `allocs` into the in-memory revm state."},"makePersistent(address)":{"notice":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup Meaning, changes made to the state of this account will be kept when switching forks."},"makePersistent(address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address,address,address)":{"notice":"See `makePersistent(address)`."},"makePersistent(address[])":{"notice":"See `makePersistent(address)`."},"mockCall(address,bytes,bytes)":{"notice":"Mocks a call to an address, returning specified data. Calldata can either be strict or a partial match, e.g. if you only pass a Solidity selector to the expected calldata, then the entire Solidity function will be mocked."},"mockCall(address,uint256,bytes,bytes)":{"notice":"Mocks a call to an address with a specific `msg.value`, returning specified data. Calldata match takes precedence over `msg.value` in case of ambiguity."},"mockCallRevert(address,bytes,bytes)":{"notice":"Reverts a call to an address with specified revert data."},"mockCallRevert(address,uint256,bytes,bytes)":{"notice":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"prank(address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address."},"prank(address,address)":{"notice":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"prevrandao(bytes32)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"prevrandao(uint256)":{"notice":"Sets `block.prevrandao`. Not available on EVM versions before Paris. Use `difficulty` instead. If used on unsupported EVM versions it will revert."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"readCallers()":{"notice":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resetNonce(address)":{"notice":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"revertTo(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted. Returns `false` if the snapshot does not exist. **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`."},"revertToAndDelete(uint256)":{"notice":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots Takes the snapshot ID to revert to. Returns `true` if the snapshot was successfully reverted and deleted. Returns `false` if the snapshot does not exist."},"revokePersistent(address)":{"notice":"Revokes persistent status from the address, previously added via `makePersistent`."},"revokePersistent(address[])":{"notice":"See `revokePersistent(address)`."},"roll(uint256)":{"notice":"Sets `block.height`."},"rollFork(bytes32)":{"notice":"Updates the currently active fork to given transaction. This will `rollFork` with the number of the block the transaction was mined in and replays all transaction mined before it in the block."},"rollFork(uint256)":{"notice":"Updates the currently active fork to given block number This is similar to `roll` but for the currently active fork."},"rollFork(uint256,bytes32)":{"notice":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"rollFork(uint256,uint256)":{"notice":"Updates the given fork to given block number."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"selectFork(uint256)":{"notice":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"setNonce(address,uint64)":{"notice":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"setNonceUnsafe(address,uint64)":{"notice":"Sets the nonce of an account to an arbitrary value."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"skip(bool)":{"notice":"Marks a test as skipped. Must be called at the top of the test."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"snapshot()":{"notice":"Snapshot the current state of the evm. Returns the ID of the snapshot that was created. To revert a snapshot use `revertTo`."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startPrank(address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"startPrank(address,address)":{"notice":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopExpectSafeMemory()":{"notice":"Stops all safe memory expectation in the current subcontext."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"stopPrank()":{"notice":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"store(address,bytes32,bytes32)":{"notice":"Stores a value to an address' storage slot."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"transact(bytes32)":{"notice":"Fetches the given transaction from the active fork and executes it on the current state."},"transact(uint256,bytes32)":{"notice":"Fetches the given transaction from the given fork and executes it on the current state."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"txGasPrice(uint256)":{"notice":"Sets `tx.gasprice`."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"warp(uint256)":{"notice":"Sets `block.timestamp`."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/Vm.sol":"Vm"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":9} \ No newline at end of file diff --git a/deployment/arb1/out/Vm.sol/VmSafe.json b/deployment/arb1/out/Vm.sol/VmSafe.json deleted file mode 100644 index 8d533ff..0000000 --- a/deployment/arb1/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":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbs","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqAbsDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRel","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertApproxEqRelDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"maxPercentDelta","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertFalse","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertGtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLe","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLeDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLt","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertLtDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool","internalType":"bool"},{"name":"right","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bool[]","internalType":"bool[]"},{"name":"right","type":"bool[]","internalType":"bool[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address[]","internalType":"address[]"},{"name":"right","type":"address[]","internalType":"address[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string","internalType":"string"},{"name":"right","type":"string","internalType":"string"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes","internalType":"bytes"},{"name":"right","type":"bytes","internalType":"bytes"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256[]","internalType":"uint256[]"},{"name":"right","type":"uint256[]","internalType":"uint256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"address","internalType":"address"},{"name":"right","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32","internalType":"bytes32"},{"name":"right","type":"bytes32","internalType":"bytes32"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes32[]","internalType":"bytes32[]"},{"name":"right","type":"bytes32[]","internalType":"bytes32[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"string[]","internalType":"string[]"},{"name":"right","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256[]","internalType":"int256[]"},{"name":"right","type":"int256[]","internalType":"int256[]"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"bytes[]","internalType":"bytes[]"},{"name":"right","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEq","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"int256","internalType":"int256"},{"name":"right","type":"int256","internalType":"int256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertNotEqDecimal","inputs":[{"name":"left","type":"uint256","internalType":"uint256"},{"name":"right","type":"uint256","internalType":"uint256"},{"name":"decimals","type":"uint256","internalType":"uint256"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assertTrue","inputs":[{"name":"condition","type":"bool","internalType":"bool"},{"name":"error","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"breakpoint","inputs":[{"name":"char","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreate2Address","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"deployer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"computeCreateAddress","inputs":[{"name":"deployer","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"copyFile","inputs":[{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"copied","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"createDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createWallet","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"walletLabel","type":"string","internalType":"string"}],"outputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"},{"name":"language","type":"string","internalType":"string"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"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":"envExists","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"view"},{"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":"eth_getLogs","inputs":[{"name":"fromBlock","type":"uint256","internalType":"uint256"},{"name":"toBlock","type":"uint256","internalType":"uint256"},{"name":"target","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.EthGetLogs[]","components":[{"name":"emitter","type":"address","internalType":"address"},{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"transactionHash","type":"bytes32","internalType":"bytes32"},{"name":"transactionIndex","type":"uint64","internalType":"uint64"},{"name":"logIndex","type":"uint256","internalType":"uint256"},{"name":"removed","type":"bool","internalType":"bool"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"exists","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"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":"path","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":"view"},{"type":"function","name":"getBlobBaseFee","inputs":[],"outputs":[{"name":"blobBaseFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"height","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"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":"getLabel","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"currentLabel","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMappingKeyAndParentOf","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"elementSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"found","type":"bool","internalType":"bool"},{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"parent","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingLength","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"length","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getMappingSlotAt","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"mappingSlot","type":"bytes32","internalType":"bytes32"},{"name":"idx","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"name":"privateKey","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"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":"indexOf","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"isContext","inputs":[{"name":"context","type":"uint8","internalType":"enum VmSafe.ForgeContext"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"isFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"result","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"keyExists","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"keyExistsToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","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":"lastCallGas","inputs":[],"outputs":[{"name":"gas","type":"tuple","internalType":"struct VmSafe.Gas","components":[{"name":"gasLimit","type":"uint64","internalType":"uint64"},{"name":"gasTotalUsed","type":"uint64","internalType":"uint64"},{"name":"gasMemoryUsed","type":"uint64","internalType":"uint64"},{"name":"gasRefunded","type":"int64","internalType":"int64"},{"name":"gasRemaining","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"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":"parseJsonAddress","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonAddressArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBool","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBoolArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytes32Array","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonBytesArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonInt","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonIntArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonKeys","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonString","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonStringArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUint","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseJsonUintArray","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseToml","inputs":[{"name":"toml","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddress","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlAddressArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBool","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBoolArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bool[]","internalType":"bool[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytes32Array","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlBytesArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlInt","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlIntArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"int256[]","internalType":"int256[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlKeys","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"keys","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlString","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlStringArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUint","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"parseTomlUintArray","inputs":[{"name":"toml","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"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":"prompt","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptAddress","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptSecret","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"input","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"promptUint","inputs":[{"name":"promptText","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"maxDepth","type":"uint64","internalType":"uint64"},{"name":"followLinks","type":"bool","internalType":"bool"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"readDir","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"entries","type":"tuple[]","internalType":"struct VmSafe.DirEntry[]","components":[{"name":"errorMessage","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"depth","type":"uint64","internalType":"uint64"},{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"}]}],"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":"readLink","inputs":[{"name":"linkPath","type":"string","internalType":"string"}],"outputs":[{"name":"targetPath","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":"keyAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeDir","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"recursive","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"replace","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"from","type":"string","internalType":"string"},{"name":"to","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpc","inputs":[{"name":"method","type":"string","internalType":"string"},{"name":"params","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"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":"serializeJson","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"value","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":"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":"serializeUintToHex","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":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"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":"sign","inputs":[{"name":"signer","type":"address","internalType":"address"},{"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":"sign","inputs":[{"name":"wallet","type":"tuple","internalType":"struct VmSafe.Wallet","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"publicKeyX","type":"uint256","internalType":"uint256"},{"name":"publicKeyY","type":"uint256","internalType":"uint256"},{"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":"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":"signP256","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"sleep","inputs":[{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"split","inputs":[{"name":"input","type":"string","internalType":"string"},{"name":"delimiter","type":"string","internalType":"string"}],"outputs":[{"name":"outputs","type":"string[]","internalType":"string[]"}],"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":"startMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startStateDiffRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopAndReturnStateDiff","inputs":[],"outputs":[{"name":"accountAccesses","type":"tuple[]","internalType":"struct VmSafe.AccountAccess[]","components":[{"name":"chainInfo","type":"tuple","internalType":"struct VmSafe.ChainInfo","components":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"}]},{"name":"kind","type":"uint8","internalType":"enum VmSafe.AccountAccessKind"},{"name":"account","type":"address","internalType":"address"},{"name":"accessor","type":"address","internalType":"address"},{"name":"initialized","type":"bool","internalType":"bool"},{"name":"oldBalance","type":"uint256","internalType":"uint256"},{"name":"newBalance","type":"uint256","internalType":"uint256"},{"name":"deployedCode","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"reverted","type":"bool","internalType":"bool"},{"name":"storageAccesses","type":"tuple[]","internalType":"struct VmSafe.StorageAccess[]","components":[{"name":"account","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"isWrite","type":"bool","internalType":"bool"},{"name":"previousValue","type":"bytes32","internalType":"bytes32"},{"name":"newValue","type":"bytes32","internalType":"bytes32"},{"name":"reverted","type":"bool","internalType":"bool"}]},{"name":"depth","type":"uint64","internalType":"uint64"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopMappingRecording","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toBase64URL","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toLowercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"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":"toUppercase","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"trim","inputs":[{"name":"input","type":"string","internalType":"string"}],"outputs":[{"name":"output","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"tryFfi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct VmSafe.FfiResult","components":[{"name":"exitCode","type":"int32","internalType":"int32"},{"name":"stdout","type":"bytes","internalType":"bytes"},{"name":"stderr","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unixTime","inputs":[],"outputs":[{"name":"milliseconds","type":"uint256","internalType":"uint256"}],"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"},{"type":"function","name":"writeToml","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":"writeToml","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assertApproxEqAbs(int256,int256,uint256)":"240f839d","assertApproxEqAbs(int256,int256,uint256,string)":"8289e621","assertApproxEqAbs(uint256,uint256,uint256)":"16d207c6","assertApproxEqAbs(uint256,uint256,uint256,string)":"f710b062","assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":"3d5bc8bc","assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":"6a5066d4","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":"045c55ce","assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":"60429eb2","assertApproxEqRel(int256,int256,uint256)":"fea2d14f","assertApproxEqRel(int256,int256,uint256,string)":"ef277d72","assertApproxEqRel(uint256,uint256,uint256)":"8cf25ef4","assertApproxEqRel(uint256,uint256,uint256,string)":"1ecb7d33","assertApproxEqRelDecimal(int256,int256,uint256,uint256)":"abbf21cc","assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":"fccc11c4","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":"21ed2977","assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":"82d6c8fd","assertEq(address,address)":"515361f6","assertEq(address,address,string)":"2f2769d1","assertEq(address[],address[])":"3868ac34","assertEq(address[],address[],string)":"3e9173c5","assertEq(bool,bool)":"f7fe3477","assertEq(bool,bool,string)":"4db19e7e","assertEq(bool[],bool[])":"707df785","assertEq(bool[],bool[],string)":"e48a8f8d","assertEq(bytes,bytes)":"97624631","assertEq(bytes,bytes,string)":"e24fed00","assertEq(bytes32,bytes32)":"7c84c69b","assertEq(bytes32,bytes32,string)":"c1fa1ed0","assertEq(bytes32[],bytes32[])":"0cc9ee84","assertEq(bytes32[],bytes32[],string)":"e03e9177","assertEq(bytes[],bytes[])":"e5fb9b4a","assertEq(bytes[],bytes[],string)":"f413f0b6","assertEq(int256,int256)":"fe74f05b","assertEq(int256,int256,string)":"714a2f13","assertEq(int256[],int256[])":"711043ac","assertEq(int256[],int256[],string)":"191f1b30","assertEq(string,string)":"f320d963","assertEq(string,string,string)":"36f656d8","assertEq(string[],string[])":"cf1c049c","assertEq(string[],string[],string)":"eff6b27d","assertEq(uint256,uint256)":"98296c54","assertEq(uint256,uint256,string)":"88b44c85","assertEq(uint256[],uint256[])":"975d5a12","assertEq(uint256[],uint256[],string)":"5d18c73a","assertEqDecimal(int256,int256,uint256)":"48016c04","assertEqDecimal(int256,int256,uint256,string)":"7e77b0c5","assertEqDecimal(uint256,uint256,uint256)":"27af7d9c","assertEqDecimal(uint256,uint256,uint256,string)":"d0cbbdef","assertFalse(bool)":"a5982885","assertFalse(bool,string)":"7ba04809","assertGe(int256,int256)":"0a30b771","assertGe(int256,int256,string)":"a84328dd","assertGe(uint256,uint256)":"a8d4d1d9","assertGe(uint256,uint256,string)":"e25242c0","assertGeDecimal(int256,int256,uint256)":"dc28c0f1","assertGeDecimal(int256,int256,uint256,string)":"5df93c9b","assertGeDecimal(uint256,uint256,uint256)":"3d1fe08a","assertGeDecimal(uint256,uint256,uint256,string)":"8bff9133","assertGt(int256,int256)":"5a362d45","assertGt(int256,int256,string)":"f8d33b9b","assertGt(uint256,uint256)":"db07fcd2","assertGt(uint256,uint256,string)":"d9a3c4d2","assertGtDecimal(int256,int256,uint256)":"78611f0e","assertGtDecimal(int256,int256,uint256,string)":"04a5c7ab","assertGtDecimal(uint256,uint256,uint256)":"eccd2437","assertGtDecimal(uint256,uint256,uint256,string)":"64949a8d","assertLe(int256,int256)":"95fd154e","assertLe(int256,int256,string)":"4dfe692c","assertLe(uint256,uint256)":"8466f415","assertLe(uint256,uint256,string)":"d17d4b0d","assertLeDecimal(int256,int256,uint256)":"11d1364a","assertLeDecimal(int256,int256,uint256,string)":"aa5cf788","assertLeDecimal(uint256,uint256,uint256)":"c304aab7","assertLeDecimal(uint256,uint256,uint256,string)":"7fefbbe0","assertLt(int256,int256)":"3e914080","assertLt(int256,int256,string)":"9ff531e3","assertLt(uint256,uint256)":"b12fc005","assertLt(uint256,uint256,string)":"65d5c135","assertLtDecimal(int256,int256,uint256)":"dbe8d88b","assertLtDecimal(int256,int256,uint256,string)":"40f0b4e0","assertLtDecimal(uint256,uint256,uint256)":"2077337e","assertLtDecimal(uint256,uint256,uint256,string)":"a972d037","assertNotEq(address,address)":"b12e1694","assertNotEq(address,address,string)":"8775a591","assertNotEq(address[],address[])":"46d0b252","assertNotEq(address[],address[],string)":"72c7e0b5","assertNotEq(bool,bool)":"236e4d66","assertNotEq(bool,bool,string)":"1091a261","assertNotEq(bool[],bool[])":"286fafea","assertNotEq(bool[],bool[],string)":"62c6f9fb","assertNotEq(bytes,bytes)":"3cf78e28","assertNotEq(bytes,bytes,string)":"9507540e","assertNotEq(bytes32,bytes32)":"898e83fc","assertNotEq(bytes32,bytes32,string)":"b2332f51","assertNotEq(bytes32[],bytes32[])":"0603ea68","assertNotEq(bytes32[],bytes32[],string)":"b873634c","assertNotEq(bytes[],bytes[])":"edecd035","assertNotEq(bytes[],bytes[],string)":"1dcd1f68","assertNotEq(int256,int256)":"f4c004e3","assertNotEq(int256,int256,string)":"4724c5b9","assertNotEq(int256[],int256[])":"0b72f4ef","assertNotEq(int256[],int256[],string)":"d3977322","assertNotEq(string,string)":"6a8237b3","assertNotEq(string,string,string)":"78bdcea7","assertNotEq(string[],string[])":"bdfacbe8","assertNotEq(string[],string[],string)":"b67187f3","assertNotEq(uint256,uint256)":"b7909320","assertNotEq(uint256,uint256,string)":"98f9bdbd","assertNotEq(uint256[],uint256[])":"56f29cba","assertNotEq(uint256[],uint256[],string)":"9a7fbd8f","assertNotEqDecimal(int256,int256,uint256)":"14e75680","assertNotEqDecimal(int256,int256,uint256,string)":"33949f0b","assertNotEqDecimal(uint256,uint256,uint256)":"669efca7","assertNotEqDecimal(uint256,uint256,uint256,string)":"f5a55558","assertTrue(bool)":"0c9fd581","assertTrue(bool,string)":"a34edc03","assume(bool)":"4c63e562","breakpoint(string)":"f0259e92","breakpoint(string,bool)":"f7d39a8d","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","closeFile(string)":"48c3241f","computeCreate2Address(bytes32,bytes32)":"890c283b","computeCreate2Address(bytes32,bytes32,address)":"d323826a","computeCreateAddress(address,uint256)":"74637a7a","copyFile(string,string)":"a54a87d8","createDir(string,bool)":"168b64d3","createWallet(string)":"7404f1d2","createWallet(uint256)":"7a675bb6","createWallet(uint256,string)":"ed7c5462","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,string,uint32,string)":"29233b1f","deriveKey(string,uint32)":"6229498b","deriveKey(string,uint32,string)":"32c8176d","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","envExists(string)":"ce8365f9","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","eth_getLogs(uint256,uint256,address,bytes32[])":"35e1349b","exists(string)":"261a323e","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getBlobBaseFee()":"1f6d6ef7","getBlockNumber()":"42cbb15c","getBlockTimestamp()":"796b89b9","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getLabel(address)":"28a249b0","getMappingKeyAndParentOf(address,bytes32)":"876e24e6","getMappingLength(address,bytes32)":"2f2fd63f","getMappingSlotAt(address,bytes32,uint256)":"ebc73ab4","getNonce((address,uint256,uint256,uint256))":"a5748aad","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","indexOf(string,string)":"8a0807b7","isContext(uint8)":"64af255d","isDir(string)":"7d15d019","isFile(string)":"e0eb04d4","keyExists(string,string)":"528a683c","keyExistsJson(string,string)":"db4235f6","keyExistsToml(string,string)":"600903ad","label(address,string)":"c657c718","lastCallGas()":"2b589b28","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","parseJsonAddress(string,string)":"1e19e657","parseJsonAddressArray(string,string)":"2fce7883","parseJsonBool(string,string)":"9f86dc91","parseJsonBoolArray(string,string)":"91f3b94f","parseJsonBytes(string,string)":"fd921be8","parseJsonBytes32(string,string)":"1777e59d","parseJsonBytes32Array(string,string)":"91c75bc3","parseJsonBytesArray(string,string)":"6631aa99","parseJsonInt(string,string)":"7b048ccd","parseJsonIntArray(string,string)":"9983c28a","parseJsonKeys(string,string)":"213e4198","parseJsonString(string,string)":"49c4fac8","parseJsonStringArray(string,string)":"498fdcf4","parseJsonUint(string,string)":"addde2b6","parseJsonUintArray(string,string)":"522074ab","parseToml(string)":"592151f0","parseToml(string,string)":"37736e08","parseTomlAddress(string,string)":"65e7c844","parseTomlAddressArray(string,string)":"65c428e7","parseTomlBool(string,string)":"d30dced6","parseTomlBoolArray(string,string)":"127cfe9a","parseTomlBytes(string,string)":"d77bfdb9","parseTomlBytes32(string,string)":"8e214810","parseTomlBytes32Array(string,string)":"3e716f81","parseTomlBytesArray(string,string)":"b197c247","parseTomlInt(string,string)":"c1350739","parseTomlIntArray(string,string)":"d3522ae6","parseTomlKeys(string,string)":"812a44b2","parseTomlString(string,string)":"8bb8dd43","parseTomlStringArray(string,string)":"9f629281","parseTomlUint(string,string)":"cc7b0487","parseTomlUintArray(string,string)":"b5df27c8","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","projectRoot()":"d930a0e6","prompt(string)":"47eaf474","promptAddress(string)":"62ee05f4","promptSecret(string)":"1e279d41","promptUint(string)":"652fd489","readDir(string)":"c4bc59e0","readDir(string,uint64)":"1497876c","readDir(string,uint64,bool)":"8102d70d","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","readLink(string)":"9f5684a2","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeDir(string,bool)":"45c62011","removeFile(string)":"f1afe04d","replace(string,string,string)":"e00ad03e","resumeGasMetering()":"2bcd50e0","rpc(string,string)":"1206c8a8","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","serializeJson(string,string)":"9b3358b0","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","serializeUintToHex(string,string,uint256)":"ae5a2ae8","setEnv(string,string)":"3d5923ee","sign((address,uint256,uint256,uint256),bytes32)":"b25c5a25","sign(address,bytes32)":"8c1aa205","sign(bytes32)":"799cd333","sign(uint256,bytes32)":"e341eaa4","signP256(uint256,bytes32)":"83211b40","sleep(uint256)":"fa9d8713","split(string,string)":"8bb75533","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startMappingRecording()":"3e9705c0","startStateDiffRecording()":"cf22e3c9","stopAndReturnStateDiff()":"aa5cf90e","stopBroadcast()":"76eadd36","stopMappingRecording()":"0d4aae9b","toBase64(bytes)":"a5cbfe65","toBase64(string)":"3f8be2c8","toBase64URL(bytes)":"c8bd0e4a","toBase64URL(string)":"ae3165b3","toLowercase(string)":"50bb0884","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","toUppercase(string)":"074ae3d7","trim(string)":"b2dad155","tryFfi(string[])":"f45c1ce7","unixTime()":"625387dc","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f","writeToml(string,string)":"c0865ba7","writeToml(string,string,string)":"51ac6a33"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbs\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqAbsDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRel\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"maxPercentDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertApproxEqRelDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertFalse\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertGtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLe\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLeDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertLt\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertLtDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"left\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"right\",\"type\":\"bool\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"left\",\"type\":\"bool[]\"},{\"internalType\":\"bool[]\",\"name\":\"right\",\"type\":\"bool[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"left\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"right\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"left\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"right\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"left\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"right\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"left\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"right\",\"type\":\"uint256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"left\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"right\",\"type\":\"address\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"left\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"right\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"left\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"right\",\"type\":\"bytes32[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"left\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"right\",\"type\":\"string[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256[]\",\"name\":\"left\",\"type\":\"int256[]\"},{\"internalType\":\"int256[]\",\"name\":\"right\",\"type\":\"int256[]\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"left\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"right\",\"type\":\"bytes[]\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"}],\"name\":\"assertNotEq\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"left\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"right\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"left\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"right\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertNotEqDecimal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"assertTrue\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"char\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"breakpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"computeCreate2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"computeCreateAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"copyFile\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"copied\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"createDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"walletLabel\",\"type\":\"string\"}],\"name\":\"createWallet\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"language\",\"type\":\"string\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"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\"}],\"name\":\"envExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"view\",\"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\":\"uint256\",\"name\":\"fromBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toBlock\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"}],\"name\":\"eth_getLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"transactionHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"transactionIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"logIndex\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"removed\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.EthGetLogs[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"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\":\"path\",\"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\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blobBaseFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":\"getLabel\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"currentLabel\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"elementSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingKeyAndParentOf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"found\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"parent\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"}],\"name\":\"getMappingLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"mappingSlot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getMappingSlotAt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"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\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"indexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum VmSafe.ForgeContext\",\"name\":\"context\",\"type\":\"uint8\"}],\"name\":\"isContext\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isDir\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"isFile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsJson\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"keyExistsToml\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"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\":[],\"name\":\"lastCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTotalUsed\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasMemoryUsed\",\"type\":\"uint64\"},{\"internalType\":\"int64\",\"name\":\"gasRefunded\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"gasRemaining\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.Gas\",\"name\":\"gas\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"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\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJsonUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"}],\"name\":\"parseToml\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlAddressArray\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBoolArray\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytes32Array\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlBytesArray\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlIntArray\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"\",\"type\":\"int256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlKeys\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"keys\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlStringArray\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"toml\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseTomlUintArray\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"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\":\"promptText\",\"type\":\"string\"}],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptSecret\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"promptText\",\"type\":\"string\"}],\"name\":\"promptUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"maxDepth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"followLinks\",\"type\":\"bool\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readDir\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.DirEntry[]\",\"name\":\"entries\",\"type\":\"tuple[]\"}],\"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\":[{\"internalType\":\"string\",\"name\":\"linkPath\",\"type\":\"string\"}],\"name\":\"readLink\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"targetPath\",\"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\":\"keyAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"recursive\",\"type\":\"bool\"}],\"name\":\"removeDir\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"from\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"to\",\"type\":\"string\"}],\"name\":\"replace\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"rpc\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"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\":\"value\",\"type\":\"string\"}],\"name\":\"serializeJson\",\"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\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUintToHex\",\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"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\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicKeyY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.Wallet\",\"name\":\"wallet\",\"type\":\"tuple\"},{\"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\":\"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\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"signP256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"sleep\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delimiter\",\"type\":\"string\"}],\"name\":\"split\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"outputs\",\"type\":\"string[]\"}],\"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\":\"startMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startStateDiffRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopAndReturnStateDiff\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.ChainInfo\",\"name\":\"chainInfo\",\"type\":\"tuple\"},{\"internalType\":\"enum VmSafe.AccountAccessKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"accessor\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"deployedCode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isWrite\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"previousValue\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"reverted\",\"type\":\"bool\"}],\"internalType\":\"struct VmSafe.StorageAccess[]\",\"name\":\"storageAccesses\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"depth\",\"type\":\"uint64\"}],\"internalType\":\"struct VmSafe.AccountAccess[]\",\"name\":\"accountAccesses\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopMappingRecording\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"toBase64URL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"toLowercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"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\":\"input\",\"type\":\"string\"}],\"name\":\"toUppercase\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"input\",\"type\":\"string\"}],\"name\":\"trim\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"output\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"tryFfi\",\"outputs\":[{\"components\":[{\"internalType\":\"int32\",\"name\":\"exitCode\",\"type\":\"int32\"},{\"internalType\":\"bytes\",\"name\":\"stdout\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"stderr\",\"type\":\"bytes\"}],\"internalType\":\"struct VmSafe.FfiResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unixTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"milliseconds\",\"type\":\"uint256\"}],\"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\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeToml\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accesses(address)\":{\"notice\":\"Gets all accessed reads and write slot from a `vm.record` session, for a given address.\"},\"addr(uint256)\":{\"notice\":\"Gets the address for a given private key.\"},\"assertApproxEqAbs(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbs(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\"},\"assertApproxEqAbs(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message.\"},\"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRel(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRel(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\"},\"assertApproxEqRel(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message.\"},\"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEq(address,address)\":{\"notice\":\"Asserts that two `address` values are equal.\"},\"assertEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are equal.\"},\"assertEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are equal.\"},\"assertEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are equal.\"},\"assertEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are equal.\"},\"assertEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are equal.\"},\"assertEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal.\"},\"assertEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure.\"},\"assertEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal.\"},\"assertEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are equal.\"},\"assertEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are equal.\"},\"assertEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure.\"},\"assertEq(string,string)\":{\"notice\":\"Asserts that two `string` values are equal.\"},\"assertEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are equal.\"},\"assertEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal.\"},\"assertEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256 values are equal.\"},\"assertEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure.\"},\"assertEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\"},\"assertEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertFalse(bool)\":{\"notice\":\"Asserts that the given condition is false.\"},\"assertFalse(bool,string)\":{\"notice\":\"Asserts that the given condition is false and includes error message into revert string on failure.\"},\"assertGe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second.\"},\"assertGe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure.\"},\"assertGeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message.\"},\"assertGeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second.\"},\"assertGt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second.\"},\"assertGt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure.\"},\"assertGtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertGtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message.\"},\"assertGtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLe(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second.\"},\"assertLe(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLe(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second.\"},\"assertLe(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure.\"},\"assertLeDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLeDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message.\"},\"assertLeDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLt(int256,int256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second.\"},\"assertLt(int256,int256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLt(uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second.\"},\"assertLt(uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure.\"},\"assertLtDecimal(int256,int256,uint256)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(int256,int256,uint256,string)\":{\"notice\":\"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertLtDecimal(uint256,uint256,uint256)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message.\"},\"assertLtDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEq(address,address)\":{\"notice\":\"Asserts that two `address` values are not equal.\"},\"assertNotEq(address,address,string)\":{\"notice\":\"Asserts that two `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(address[],address[])\":{\"notice\":\"Asserts that two arrays of `address` values are not equal.\"},\"assertNotEq(address[],address[],string)\":{\"notice\":\"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool,bool)\":{\"notice\":\"Asserts that two `bool` values are not equal.\"},\"assertNotEq(bool,bool,string)\":{\"notice\":\"Asserts that two `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bool[],bool[])\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal.\"},\"assertNotEq(bool[],bool[],string)\":{\"notice\":\"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes,bytes)\":{\"notice\":\"Asserts that two `bytes` values are not equal.\"},\"assertNotEq(bytes,bytes,string)\":{\"notice\":\"Asserts that two `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32,bytes32)\":{\"notice\":\"Asserts that two `bytes32` values are not equal.\"},\"assertNotEq(bytes32,bytes32,string)\":{\"notice\":\"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes32[],bytes32[])\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal.\"},\"assertNotEq(bytes32[],bytes32[],string)\":{\"notice\":\"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(bytes[],bytes[])\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal.\"},\"assertNotEq(bytes[],bytes[],string)\":{\"notice\":\"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256,int256)\":{\"notice\":\"Asserts that two `int256` values are not equal.\"},\"assertNotEq(int256,int256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(int256[],int256[])\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal.\"},\"assertNotEq(int256[],int256[],string)\":{\"notice\":\"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string,string)\":{\"notice\":\"Asserts that two `string` values are not equal.\"},\"assertNotEq(string,string,string)\":{\"notice\":\"Asserts that two `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(string[],string[])\":{\"notice\":\"Asserts that two arrays of `string` values are not equal.\"},\"assertNotEq(string[],string[],string)\":{\"notice\":\"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal.\"},\"assertNotEq(uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEq(uint256[],uint256[])\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal.\"},\"assertNotEq(uint256[],uint256[],string)\":{\"notice\":\"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure.\"},\"assertNotEqDecimal(int256,int256,uint256)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(int256,int256,uint256,string)\":{\"notice\":\"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertNotEqDecimal(uint256,uint256,uint256)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\"},\"assertNotEqDecimal(uint256,uint256,uint256,string)\":{\"notice\":\"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure.\"},\"assertTrue(bool)\":{\"notice\":\"Asserts that the given condition is true.\"},\"assertTrue(bool,string)\":{\"notice\":\"Asserts that the given condition is true and includes error message into revert string on failure.\"},\"assume(bool)\":{\"notice\":\"If the condition is false, discard this run's fuzz inputs and generate new ones.\"},\"breakpoint(string)\":{\"notice\":\"Writes a breakpoint to jump to in the debugger.\"},\"breakpoint(string,bool)\":{\"notice\":\"Writes a conditional breakpoint to jump to in the debugger.\"},\"broadcast()\":{\"notice\":\"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"broadcast(address)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain.\"},\"broadcast(uint256)\":{\"notice\":\"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain.\"},\"closeFile(string)\":{\"notice\":\"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root.\"},\"computeCreate2Address(bytes32,bytes32)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer.\"},\"computeCreate2Address(bytes32,bytes32,address)\":{\"notice\":\"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer.\"},\"computeCreateAddress(address,uint256)\":{\"notice\":\"Compute the address a contract will be deployed at for a given deployer address and nonce.\"},\"copyFile(string,string)\":{\"notice\":\"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root.\"},\"createDir(string,bool)\":{\"notice\":\"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root.\"},\"createWallet(string)\":{\"notice\":\"Derives a private key from the name, labels the account with that name, and returns the wallet.\"},\"createWallet(uint256)\":{\"notice\":\"Generates a wallet from the private key and returns the wallet.\"},\"createWallet(uint256,string)\":{\"notice\":\"Generates a wallet from the private key, labels the account with that name, and returns the wallet.\"},\"deriveKey(string,string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`.\"},\"deriveKey(string,string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`.\"},\"deriveKey(string,uint32)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"deriveKey(string,uint32,string)\":{\"notice\":\"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`.\"},\"envAddress(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed.\"},\"envAddress(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed.\"},\"envBool(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed.\"},\"envBytes32(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envExists(string)\":{\"notice\":\"Gets the environment variable `name` and returns true if it exists, else returns false.\"},\"envInt(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed.\"},\"envInt(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envOr(string,address)\":{\"notice\":\"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bool)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,bytes32)\":{\"notice\":\"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,int256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,address[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bool[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes32[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,bytes[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,int256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,string[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,string,uint256[])\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envOr(string,uint256)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found.\"},\"envString(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed.\"},\"envString(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string)\":{\"notice\":\"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed.\"},\"envUint(string,string)\":{\"notice\":\"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed.\"},\"eth_getLogs(uint256,uint256,address,bytes32[])\":{\"notice\":\"Gets all the logs according to specified filter.\"},\"exists(string)\":{\"notice\":\"Returns true if the given path points to an existing entity, else returns false.\"},\"ffi(string[])\":{\"notice\":\"Performs a foreign function call via the terminal.\"},\"fsMetadata(string)\":{\"notice\":\"Given a path, query the file system to get information about a file, directory, etc.\"},\"getBlobBaseFee()\":{\"notice\":\"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockNumber()\":{\"notice\":\"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getBlockTimestamp()\":{\"notice\":\"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180\"},\"getCode(string)\":{\"notice\":\"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getDeployedCode(string)\":{\"notice\":\"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional.\"},\"getLabel(address)\":{\"notice\":\"Gets the label for the specified address.\"},\"getMappingKeyAndParentOf(address,bytes32)\":{\"notice\":\"Gets the map key and parent of a mapping at a given slot, for a given address.\"},\"getMappingLength(address,bytes32)\":{\"notice\":\"Gets the number of elements in the mapping at the given slot, for a given address.\"},\"getMappingSlotAt(address,bytes32,uint256)\":{\"notice\":\"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping).\"},\"getNonce((address,uint256,uint256,uint256))\":{\"notice\":\"Get a `Wallet`'s nonce.\"},\"getNonce(address)\":{\"notice\":\"Gets the nonce of an account.\"},\"getRecordedLogs()\":{\"notice\":\"Gets all the recorded logs.\"},\"indexOf(string,string)\":{\"notice\":\"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`.\"},\"isContext(uint8)\":{\"notice\":\"Returns true if `forge` command was executed in given context.\"},\"isDir(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a directory, else returns false.\"},\"isFile(string)\":{\"notice\":\"Returns true if the path exists on disk and is pointing at a regular file, else returns false.\"},\"keyExists(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions.\"},\"keyExistsJson(string,string)\":{\"notice\":\"Checks if `key` exists in a JSON object.\"},\"keyExistsToml(string,string)\":{\"notice\":\"Checks if `key` exists in a TOML table.\"},\"label(address,string)\":{\"notice\":\"Labels an address in call traces.\"},\"lastCallGas()\":{\"notice\":\"Gets the gas used in the last call.\"},\"load(address,bytes32)\":{\"notice\":\"Loads a storage slot from an address.\"},\"parseAddress(string)\":{\"notice\":\"Parses the given `string` into an `address`.\"},\"parseBool(string)\":{\"notice\":\"Parses the given `string` into a `bool`.\"},\"parseBytes(string)\":{\"notice\":\"Parses the given `string` into `bytes`.\"},\"parseBytes32(string)\":{\"notice\":\"Parses the given `string` into a `bytes32`.\"},\"parseInt(string)\":{\"notice\":\"Parses the given `string` into a `int256`.\"},\"parseJson(string)\":{\"notice\":\"ABI-encodes a JSON object.\"},\"parseJson(string,string)\":{\"notice\":\"ABI-encodes a JSON object at `key`.\"},\"parseJsonAddress(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address`.\"},\"parseJsonAddressArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `address[]`.\"},\"parseJsonBool(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool`.\"},\"parseJsonBoolArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bool[]`.\"},\"parseJsonBytes(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes`.\"},\"parseJsonBytes32(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32`.\"},\"parseJsonBytes32Array(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes32[]`.\"},\"parseJsonBytesArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `bytes[]`.\"},\"parseJsonInt(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256`.\"},\"parseJsonIntArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `int256[]`.\"},\"parseJsonKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a JSON object.\"},\"parseJsonString(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string`.\"},\"parseJsonStringArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `string[]`.\"},\"parseJsonUint(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256`.\"},\"parseJsonUintArray(string,string)\":{\"notice\":\"Parses a string of JSON data at `key` and coerces it to `uint256[]`.\"},\"parseToml(string)\":{\"notice\":\"ABI-encodes a TOML table.\"},\"parseToml(string,string)\":{\"notice\":\"ABI-encodes a TOML table at `key`.\"},\"parseTomlAddress(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address`.\"},\"parseTomlAddressArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `address[]`.\"},\"parseTomlBool(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool`.\"},\"parseTomlBoolArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bool[]`.\"},\"parseTomlBytes(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes`.\"},\"parseTomlBytes32(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32`.\"},\"parseTomlBytes32Array(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes32[]`.\"},\"parseTomlBytesArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `bytes[]`.\"},\"parseTomlInt(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256`.\"},\"parseTomlIntArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `int256[]`.\"},\"parseTomlKeys(string,string)\":{\"notice\":\"Returns an array of all the keys in a TOML table.\"},\"parseTomlString(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string`.\"},\"parseTomlStringArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `string[]`.\"},\"parseTomlUint(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256`.\"},\"parseTomlUintArray(string,string)\":{\"notice\":\"Parses a string of TOML data at `key` and coerces it to `uint256[]`.\"},\"parseUint(string)\":{\"notice\":\"Parses the given `string` into a `uint256`.\"},\"pauseGasMetering()\":{\"notice\":\"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused.\"},\"projectRoot()\":{\"notice\":\"Get the path of the current project root.\"},\"prompt(string)\":{\"notice\":\"Prompts the user for a string value in the terminal.\"},\"promptAddress(string)\":{\"notice\":\"Prompts the user for an address in the terminal.\"},\"promptSecret(string)\":{\"notice\":\"Prompts the user for a hidden string value in the terminal.\"},\"promptUint(string)\":{\"notice\":\"Prompts the user for uint256 in the terminal.\"},\"readDir(string)\":{\"notice\":\"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true.\"},\"readDir(string,uint64)\":{\"notice\":\"See `readDir(string)`.\"},\"readDir(string,uint64,bool)\":{\"notice\":\"See `readDir(string)`.\"},\"readFile(string)\":{\"notice\":\"Reads the entire content of file to string. `path` is relative to the project root.\"},\"readFileBinary(string)\":{\"notice\":\"Reads the entire content of file as binary. `path` is relative to the project root.\"},\"readLine(string)\":{\"notice\":\"Reads next line of file to string.\"},\"readLink(string)\":{\"notice\":\"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist.\"},\"record()\":{\"notice\":\"Records all storage reads and writes.\"},\"recordLogs()\":{\"notice\":\"Record all the transaction logs.\"},\"rememberKey(uint256)\":{\"notice\":\"Adds a private key to the local forge wallet and returns the address.\"},\"removeDir(string,bool)\":{\"notice\":\"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root.\"},\"removeFile(string)\":{\"notice\":\"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root.\"},\"replace(string,string,string)\":{\"notice\":\"Replaces occurrences of `from` in the given `string` with `to`.\"},\"resumeGasMetering()\":{\"notice\":\"Resumes gas metering (i.e. gas usage is counted again). Noop if already on.\"},\"rpc(string,string)\":{\"notice\":\"Performs an Ethereum JSON-RPC request to the current fork URL.\"},\"rpcUrl(string)\":{\"notice\":\"Returns the RPC url for the given alias.\"},\"rpcUrlStructs()\":{\"notice\":\"Returns all rpc urls and their aliases as structs.\"},\"rpcUrls()\":{\"notice\":\"Returns all rpc urls and their aliases `[alias, url][]`.\"},\"serializeAddress(string,string,address)\":{\"notice\":\"See `serializeJson`.\"},\"serializeAddress(string,string,address[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBool(string,string,bool[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes(string,string,bytes[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32)\":{\"notice\":\"See `serializeJson`.\"},\"serializeBytes32(string,string,bytes32[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeInt(string,string,int256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeJson(string,string)\":{\"notice\":\"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment.\"},\"serializeString(string,string,string)\":{\"notice\":\"See `serializeJson`.\"},\"serializeString(string,string,string[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"serializeUint(string,string,uint256[])\":{\"notice\":\"See `serializeJson`.\"},\"serializeUintToHex(string,string,uint256)\":{\"notice\":\"See `serializeJson`.\"},\"setEnv(string,string)\":{\"notice\":\"Sets environment variables.\"},\"sign((address,uint256,uint256,uint256),bytes32)\":{\"notice\":\"Signs data with a `Wallet`.\"},\"sign(address,bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address.\"},\"sign(bytes32)\":{\"notice\":\"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script.\"},\"sign(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256k1 curve.\"},\"signP256(uint256,bytes32)\":{\"notice\":\"Signs `digest` with `privateKey` using the secp256r1 curve.\"},\"sleep(uint256)\":{\"notice\":\"Suspends execution of the main thread for `duration` milliseconds.\"},\"split(string,string)\":{\"notice\":\"Splits the given `string` into an array of strings divided by the `delimiter`.\"},\"startBroadcast()\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used.\"},\"startBroadcast(address)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain.\"},\"startBroadcast(uint256)\":{\"notice\":\"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain.\"},\"startMappingRecording()\":{\"notice\":\"Starts recording all map SSTOREs for later retrieval.\"},\"startStateDiffRecording()\":{\"notice\":\"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls\"},\"stopAndReturnStateDiff()\":{\"notice\":\"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session.\"},\"stopBroadcast()\":{\"notice\":\"Stops collecting onchain transactions.\"},\"stopMappingRecording()\":{\"notice\":\"Stops recording all map SSTOREs for later retrieval and clears the recorded data.\"},\"toBase64(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64 string.\"},\"toBase64(string)\":{\"notice\":\"Encodes a `string` value to a base64 string.\"},\"toBase64URL(bytes)\":{\"notice\":\"Encodes a `bytes` value to a base64url string.\"},\"toBase64URL(string)\":{\"notice\":\"Encodes a `string` value to a base64url string.\"},\"toLowercase(string)\":{\"notice\":\"Converts the given `string` value to Lowercase.\"},\"toString(address)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bool)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(bytes32)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(int256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toString(uint256)\":{\"notice\":\"Converts the given value to a `string`.\"},\"toUppercase(string)\":{\"notice\":\"Converts the given `string` value to Uppercase.\"},\"trim(string)\":{\"notice\":\"Trims leading and trailing whitespace from the given `string` value.\"},\"tryFfi(string[])\":{\"notice\":\"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr.\"},\"unixTime()\":{\"notice\":\"Returns the time since unix epoch in milliseconds.\"},\"writeFile(string,string)\":{\"notice\":\"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeFileBinary(string,bytes)\":{\"notice\":\"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root.\"},\"writeJson(string,string)\":{\"notice\":\"Write a serialized JSON object to a file. If the file exists, it will be overwritten.\"},\"writeJson(string,string,string)\":{\"notice\":\"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing.\"},\"writeLine(string,string)\":{\"notice\":\"Writes line to file, creating a file if it does not exist. `path` is relative to the project root.\"},\"writeToml(string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML to a file.\"},\"writeToml(string,string,string)\":{\"notice\":\"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing.\"}},\"notice\":\"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may result in Script simulations differing from on-chain execution. It is recommended to only use these cheats in scripts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/Vm.sol\":\"VmSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbs"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqAbsDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRel"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"maxPercentDelta","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertApproxEqRelDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertFalse"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertGtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLe"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLeDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLt"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertLtDecimal"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool","name":"left","type":"bool"},{"internalType":"bool","name":"right","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bool[]","name":"left","type":"bool[]"},{"internalType":"bool[]","name":"right","type":"bool[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address[]","name":"left","type":"address[]"},{"internalType":"address[]","name":"right","type":"address[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string","name":"left","type":"string"},{"internalType":"string","name":"right","type":"string"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes","name":"left","type":"bytes"},{"internalType":"bytes","name":"right","type":"bytes"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256[]","name":"left","type":"uint256[]"},{"internalType":"uint256[]","name":"right","type":"uint256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"address","name":"left","type":"address"},{"internalType":"address","name":"right","type":"address"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32","name":"left","type":"bytes32"},{"internalType":"bytes32","name":"right","type":"bytes32"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes32[]","name":"left","type":"bytes32[]"},{"internalType":"bytes32[]","name":"right","type":"bytes32[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"string[]","name":"left","type":"string[]"},{"internalType":"string[]","name":"right","type":"string[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256[]","name":"left","type":"int256[]"},{"internalType":"int256[]","name":"right","type":"int256[]"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"bytes[]","name":"left","type":"bytes[]"},{"internalType":"bytes[]","name":"right","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"}],"stateMutability":"pure","type":"function","name":"assertNotEq"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"int256","name":"left","type":"int256"},{"internalType":"int256","name":"right","type":"int256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"uint256","name":"left","type":"uint256"},{"internalType":"uint256","name":"right","type":"uint256"},{"internalType":"uint256","name":"decimals","type":"uint256"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertNotEqDecimal"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"pure","type":"function","name":"assertTrue"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[{"internalType":"string","name":"char","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"inputs":[{"internalType":"string","name":"char","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"breakpoint"},{"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":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes32","name":"initCodeHash","type":"bytes32"},{"internalType":"address","name":"deployer","type":"address"}],"stateMutability":"pure","type":"function","name":"computeCreate2Address","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"pure","type":"function","name":"computeCreateAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"copyFile","outputs":[{"internalType":"uint64","name":"copied","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"createDir"},{"inputs":[{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"string","name":"walletLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createWallet","outputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"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"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"},{"internalType":"string","name":"language","type":"string"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"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"}],"stateMutability":"view","type":"function","name":"envExists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"view","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":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"toBlock","type":"uint256"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"eth_getLogs","outputs":[{"internalType":"struct VmSafe.EthGetLogs[]","name":"logs","type":"tuple[]","components":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint64","name":"transactionIndex","type":"uint64"},{"internalType":"uint256","name":"logIndex","type":"uint256"},{"internalType":"bool","name":"removed","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"exists","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","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":[],"stateMutability":"view","type":"function","name":"getBlobBaseFee","outputs":[{"internalType":"uint256","name":"blobBaseFee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"height","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","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":"getLabel","outputs":[{"internalType":"string","name":"currentLabel","type":"string"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"elementSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingKeyAndParentOf","outputs":[{"internalType":"bool","name":"found","type":"bool"},{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"parent","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"getMappingLength","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"mappingSlot","type":"bytes32"},{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getMappingSlotAt","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]}],"stateMutability":"nonpayable","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":"string","name":"input","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"indexOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum VmSafe.ForgeContext","name":"context","type":"uint8"}],"stateMutability":"view","type":"function","name":"isContext","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isDir","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"isFile","outputs":[{"internalType":"bool","name":"result","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsJson","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"view","type":"function","name":"keyExistsToml","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[],"stateMutability":"view","type":"function","name":"lastCallGas","outputs":[{"internalType":"struct VmSafe.Gas","name":"gas","type":"tuple","components":[{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint64","name":"gasTotalUsed","type":"uint64"},{"internalType":"uint64","name":"gasMemoryUsed","type":"uint64"},{"internalType":"int64","name":"gasRefunded","type":"int64"},{"internalType":"uint64","name":"gasRemaining","type":"uint64"}]}]},{"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":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJsonUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"}],"stateMutability":"pure","type":"function","name":"parseToml","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBool","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytes32Array","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlInt","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlIntArray","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlKeys","outputs":[{"internalType":"string[]","name":"keys","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlString","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"toml","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseTomlUintArray","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"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":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"prompt","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptSecret","outputs":[{"internalType":"string","name":"input","type":"string"}]},{"inputs":[{"internalType":"string","name":"promptText","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"promptUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"maxDepth","type":"uint64"},{"internalType":"bool","name":"followLinks","type":"bool"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readDir","outputs":[{"internalType":"struct VmSafe.DirEntry[]","name":"entries","type":"tuple[]","components":[{"internalType":"string","name":"errorMessage","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"uint64","name":"depth","type":"uint64"},{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"}]}]},{"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":[{"internalType":"string","name":"linkPath","type":"string"}],"stateMutability":"view","type":"function","name":"readLink","outputs":[{"internalType":"string","name":"targetPath","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":"keyAddr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bool","name":"recursive","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"removeDir"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"from","type":"string"},{"internalType":"string","name":"to","type":"string"}],"stateMutability":"pure","type":"function","name":"replace","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"params","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"rpc","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"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":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeJson","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":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUintToHex","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":"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":[{"internalType":"address","name":"signer","type":"address"},{"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":[{"internalType":"struct VmSafe.Wallet","name":"wallet","type":"tuple","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"publicKeyX","type":"uint256"},{"internalType":"uint256","name":"publicKeyY","type":"uint256"},{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"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":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"signP256","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"sleep"},{"inputs":[{"internalType":"string","name":"input","type":"string"},{"internalType":"string","name":"delimiter","type":"string"}],"stateMutability":"pure","type":"function","name":"split","outputs":[{"internalType":"string[]","name":"outputs","type":"string[]"}]},{"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":"startMappingRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startStateDiffRecording"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopAndReturnStateDiff","outputs":[{"internalType":"struct VmSafe.AccountAccess[]","name":"accountAccesses","type":"tuple[]","components":[{"internalType":"struct VmSafe.ChainInfo","name":"chainInfo","type":"tuple","components":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}]},{"internalType":"enum VmSafe.AccountAccessKind","name":"kind","type":"uint8"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"accessor","type":"address"},{"internalType":"bool","name":"initialized","type":"bool"},{"internalType":"uint256","name":"oldBalance","type":"uint256"},{"internalType":"uint256","name":"newBalance","type":"uint256"},{"internalType":"bytes","name":"deployedCode","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"reverted","type":"bool"},{"internalType":"struct VmSafe.StorageAccess[]","name":"storageAccesses","type":"tuple[]","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bool","name":"isWrite","type":"bool"},{"internalType":"bytes32","name":"previousValue","type":"bytes32"},{"internalType":"bytes32","name":"newValue","type":"bytes32"},{"internalType":"bool","name":"reverted","type":"bool"}]},{"internalType":"uint64","name":"depth","type":"uint64"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopMappingRecording"},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"data","type":"string"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toBase64URL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toLowercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"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":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"toUppercase","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"stateMutability":"pure","type":"function","name":"trim","outputs":[{"internalType":"string","name":"output","type":"string"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"tryFfi","outputs":[{"internalType":"struct VmSafe.FfiResult","name":"result","type":"tuple","components":[{"internalType":"int32","name":"exitCode","type":"int32"},{"internalType":"bytes","name":"stdout","type":"bytes"},{"internalType":"bytes","name":"stderr","type":"bytes"}]}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unixTime","outputs":[{"internalType":"uint256","name":"milliseconds","type":"uint256"}]},{"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"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeToml"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"accesses(address)":{"notice":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"addr(uint256)":{"notice":"Gets the address for a given private key."},"assertApproxEqAbs(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbs(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"assertApproxEqAbs(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message."},"assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRel(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRel(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"assertApproxEqRel(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Includes error message into revert string on failure."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)":{"notice":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message."},"assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`. `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100% Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertEq(address,address)":{"notice":"Asserts that two `address` values are equal."},"assertEq(address,address,string)":{"notice":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"assertEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are equal."},"assertEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"assertEq(bool,bool)":{"notice":"Asserts that two `bool` values are equal."},"assertEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"assertEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are equal."},"assertEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"assertEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are equal."},"assertEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"assertEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are equal."},"assertEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are equal."},"assertEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"assertEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are equal."},"assertEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"assertEq(int256,int256)":{"notice":"Asserts that two `int256` values are equal."},"assertEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"assertEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are equal."},"assertEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"assertEq(string,string)":{"notice":"Asserts that two `string` values are equal."},"assertEq(string,string,string)":{"notice":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"assertEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are equal."},"assertEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"assertEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal."},"assertEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"assertEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256 values are equal."},"assertEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"assertEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"assertEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertFalse(bool)":{"notice":"Asserts that the given condition is false."},"assertFalse(bool,string)":{"notice":"Asserts that the given condition is false and includes error message into revert string on failure."},"assertGe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"assertGe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"assertGe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Includes error message into revert string on failure."},"assertGeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message."},"assertGeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second."},"assertGt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second."},"assertGt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Includes error message into revert string on failure."},"assertGtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertGtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message."},"assertGtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be greater than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLe(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second."},"assertLe(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLe(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"assertLe(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Includes error message into revert string on failure."},"assertLeDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLeDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message."},"assertLeDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than or equal to second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLt(int256,int256)":{"notice":"Compares two `int256` values. Expects first value to be less than second."},"assertLt(int256,int256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLt(uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second."},"assertLt(uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Includes error message into revert string on failure."},"assertLtDecimal(int256,int256,uint256)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(int256,int256,uint256,string)":{"notice":"Compares two `int256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertLtDecimal(uint256,uint256,uint256)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message."},"assertLtDecimal(uint256,uint256,uint256,string)":{"notice":"Compares two `uint256` values. Expects first value to be less than second. Formats values with decimals in failure message. Includes error message into revert string on failure."},"assertNotEq(address,address)":{"notice":"Asserts that two `address` values are not equal."},"assertNotEq(address,address,string)":{"notice":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(address[],address[])":{"notice":"Asserts that two arrays of `address` values are not equal."},"assertNotEq(address[],address[],string)":{"notice":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool,bool)":{"notice":"Asserts that two `bool` values are not equal."},"assertNotEq(bool,bool,string)":{"notice":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bool[],bool[])":{"notice":"Asserts that two arrays of `bool` values are not equal."},"assertNotEq(bool[],bool[],string)":{"notice":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes,bytes)":{"notice":"Asserts that two `bytes` values are not equal."},"assertNotEq(bytes,bytes,string)":{"notice":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32,bytes32)":{"notice":"Asserts that two `bytes32` values are not equal."},"assertNotEq(bytes32,bytes32,string)":{"notice":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes32[],bytes32[])":{"notice":"Asserts that two arrays of `bytes32` values are not equal."},"assertNotEq(bytes32[],bytes32[],string)":{"notice":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"assertNotEq(bytes[],bytes[])":{"notice":"Asserts that two arrays of `bytes` values are not equal."},"assertNotEq(bytes[],bytes[],string)":{"notice":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256,int256)":{"notice":"Asserts that two `int256` values are not equal."},"assertNotEq(int256,int256,string)":{"notice":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(int256[],int256[])":{"notice":"Asserts that two arrays of `int256` values are not equal."},"assertNotEq(int256[],int256[],string)":{"notice":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"assertNotEq(string,string)":{"notice":"Asserts that two `string` values are not equal."},"assertNotEq(string,string,string)":{"notice":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(string[],string[])":{"notice":"Asserts that two arrays of `string` values are not equal."},"assertNotEq(string[],string[],string)":{"notice":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal."},"assertNotEq(uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEq(uint256[],uint256[])":{"notice":"Asserts that two arrays of `uint256` values are not equal."},"assertNotEq(uint256[],uint256[],string)":{"notice":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"assertNotEqDecimal(int256,int256,uint256)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(int256,int256,uint256,string)":{"notice":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertNotEqDecimal(uint256,uint256,uint256)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"assertNotEqDecimal(uint256,uint256,uint256,string)":{"notice":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message. Includes error message into revert string on failure."},"assertTrue(bool)":{"notice":"Asserts that the given condition is true."},"assertTrue(bool,string)":{"notice":"Asserts that the given condition is true and includes error message into revert string on failure."},"assume(bool)":{"notice":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"breakpoint(string)":{"notice":"Writes a breakpoint to jump to in the debugger."},"breakpoint(string,bool)":{"notice":"Writes a conditional breakpoint to jump to in the debugger."},"broadcast()":{"notice":"Has the next call (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"broadcast(address)":{"notice":"Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain."},"broadcast(uint256)":{"notice":"Has the next call (at this call depth only) create a transaction with the private key provided as the sender that can later be signed and sent onchain."},"closeFile(string)":{"notice":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine. `path` is relative to the project root."},"computeCreate2Address(bytes32,bytes32)":{"notice":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"computeCreate2Address(bytes32,bytes32,address)":{"notice":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"computeCreateAddress(address,uint256)":{"notice":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"copyFile(string,string)":{"notice":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`. On success, the total number of bytes copied is returned and it is equal to the length of the `to` file as reported by `metadata`. Both `from` and `to` are relative to the project root."},"createDir(string,bool)":{"notice":"Creates a new, empty directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - User lacks permissions to modify `path`. - A parent of the given path doesn't exist and `recursive` is false. - `path` already exists and `recursive` is false. `path` is relative to the project root."},"createWallet(string)":{"notice":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"createWallet(uint256)":{"notice":"Generates a wallet from the private key and returns the wallet."},"createWallet(uint256,string)":{"notice":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"deriveKey(string,string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at `{derivationPath}{index}`."},"deriveKey(string,string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at `{derivationPath}{index}`."},"deriveKey(string,uint32)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path `m/44'/60'/0'/0/{index}`."},"deriveKey(string,uint32,string)":{"notice":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language at the derivation path `m/44'/60'/0'/0/{index}`."},"envAddress(string)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable was not found or could not be parsed."},"envAddress(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBool(string)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable was not found or could not be parsed."},"envBool(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable was not found or could not be parsed."},"envBytes(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable was not found or could not be parsed."},"envBytes32(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envExists(string)":{"notice":"Gets the environment variable `name` and returns true if it exists, else returns false."},"envInt(string)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable was not found or could not be parsed."},"envInt(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envOr(string,address)":{"notice":"Gets the environment variable `name` and parses it as `address`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bool)":{"notice":"Gets the environment variable `name` and parses it as `bool`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes)":{"notice":"Gets the environment variable `name` and parses it as `bytes`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,bytes32)":{"notice":"Gets the environment variable `name` and parses it as `bytes32`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,int256)":{"notice":"Gets the environment variable `name` and parses it as `int256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,address[])":{"notice":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bool[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes32[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,bytes[])":{"notice":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,int256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,string[])":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,string,uint256[])":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envOr(string,uint256)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable could not be parsed. Returns `defaultValue` if the variable was not found."},"envString(string)":{"notice":"Gets the environment variable `name` and parses it as `string`. Reverts if the variable was not found or could not be parsed."},"envString(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"envUint(string)":{"notice":"Gets the environment variable `name` and parses it as `uint256`. Reverts if the variable was not found or could not be parsed."},"envUint(string,string)":{"notice":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`. Reverts if the variable was not found or could not be parsed."},"eth_getLogs(uint256,uint256,address,bytes32[])":{"notice":"Gets all the logs according to specified filter."},"exists(string)":{"notice":"Returns true if the given path points to an existing entity, else returns false."},"ffi(string[])":{"notice":"Performs a foreign function call via the terminal."},"fsMetadata(string)":{"notice":"Given a path, query the file system to get information about a file, directory, etc."},"getBlobBaseFee()":{"notice":"Gets the current `block.blobbasefee`. You should use this instead of `block.blobbasefee` if you use `vm.blobBaseFee`, as `block.blobbasefee` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockNumber()":{"notice":"Gets the current `block.number`. You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getBlockTimestamp()":{"notice":"Gets the current `block.timestamp`. You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction, and as a result will get optimized out by the compiler. See https://github.com/foundry-rs/foundry/issues/6180"},"getCode(string)":{"notice":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getDeployedCode(string)":{"notice":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file or the path to the artifact in the form of :: where and parts are optional."},"getLabel(address)":{"notice":"Gets the label for the specified address."},"getMappingKeyAndParentOf(address,bytes32)":{"notice":"Gets the map key and parent of a mapping at a given slot, for a given address."},"getMappingLength(address,bytes32)":{"notice":"Gets the number of elements in the mapping at the given slot, for a given address."},"getMappingSlotAt(address,bytes32,uint256)":{"notice":"Gets the elements at index idx of the mapping at the given slot, for a given address. The index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"getNonce((address,uint256,uint256,uint256))":{"notice":"Get a `Wallet`'s nonce."},"getNonce(address)":{"notice":"Gets the nonce of an account."},"getRecordedLogs()":{"notice":"Gets all the recorded logs."},"indexOf(string,string)":{"notice":"Returns the index of the first occurrence of a `key` in an `input` string. Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `key` is not found. Returns 0 in case of an empty `key`."},"isContext(uint8)":{"notice":"Returns true if `forge` command was executed in given context."},"isDir(string)":{"notice":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"isFile(string)":{"notice":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"keyExists(string,string)":{"notice":"Checks if `key` exists in a JSON object `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"keyExistsJson(string,string)":{"notice":"Checks if `key` exists in a JSON object."},"keyExistsToml(string,string)":{"notice":"Checks if `key` exists in a TOML table."},"label(address,string)":{"notice":"Labels an address in call traces."},"lastCallGas()":{"notice":"Gets the gas used in the last call."},"load(address,bytes32)":{"notice":"Loads a storage slot from an address."},"parseAddress(string)":{"notice":"Parses the given `string` into an `address`."},"parseBool(string)":{"notice":"Parses the given `string` into a `bool`."},"parseBytes(string)":{"notice":"Parses the given `string` into `bytes`."},"parseBytes32(string)":{"notice":"Parses the given `string` into a `bytes32`."},"parseInt(string)":{"notice":"Parses the given `string` into a `int256`."},"parseJson(string)":{"notice":"ABI-encodes a JSON object."},"parseJson(string,string)":{"notice":"ABI-encodes a JSON object at `key`."},"parseJsonAddress(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address`."},"parseJsonAddressArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"parseJsonBool(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool`."},"parseJsonBoolArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"parseJsonBytes(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"parseJsonBytes32(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"parseJsonBytes32Array(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"parseJsonBytesArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"parseJsonInt(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256`."},"parseJsonIntArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"parseJsonKeys(string,string)":{"notice":"Returns an array of all the keys in a JSON object."},"parseJsonString(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string`."},"parseJsonStringArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"parseJsonUint(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"parseJsonUintArray(string,string)":{"notice":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"parseToml(string)":{"notice":"ABI-encodes a TOML table."},"parseToml(string,string)":{"notice":"ABI-encodes a TOML table at `key`."},"parseTomlAddress(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address`."},"parseTomlAddressArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"parseTomlBool(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool`."},"parseTomlBoolArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"parseTomlBytes(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"parseTomlBytes32(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"parseTomlBytes32Array(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"parseTomlBytesArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"parseTomlInt(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256`."},"parseTomlIntArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"parseTomlKeys(string,string)":{"notice":"Returns an array of all the keys in a TOML table."},"parseTomlString(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string`."},"parseTomlStringArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"parseTomlUint(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"parseTomlUintArray(string,string)":{"notice":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"parseUint(string)":{"notice":"Parses the given `string` into a `uint256`."},"pauseGasMetering()":{"notice":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"projectRoot()":{"notice":"Get the path of the current project root."},"prompt(string)":{"notice":"Prompts the user for a string value in the terminal."},"promptAddress(string)":{"notice":"Prompts the user for an address in the terminal."},"promptSecret(string)":{"notice":"Prompts the user for a hidden string value in the terminal."},"promptUint(string)":{"notice":"Prompts the user for uint256 in the terminal."},"readDir(string)":{"notice":"Reads the directory at the given path recursively, up to `maxDepth`. `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned. Follows symbolic links if `followLinks` is true."},"readDir(string,uint64)":{"notice":"See `readDir(string)`."},"readDir(string,uint64,bool)":{"notice":"See `readDir(string)`."},"readFile(string)":{"notice":"Reads the entire content of file to string. `path` is relative to the project root."},"readFileBinary(string)":{"notice":"Reads the entire content of file as binary. `path` is relative to the project root."},"readLine(string)":{"notice":"Reads next line of file to string."},"readLink(string)":{"notice":"Reads a symbolic link, returning the path that the link points to. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` is not a symbolic link. - `path` does not exist."},"record()":{"notice":"Records all storage reads and writes."},"recordLogs()":{"notice":"Record all the transaction logs."},"rememberKey(uint256)":{"notice":"Adds a private key to the local forge wallet and returns the address."},"removeDir(string,bool)":{"notice":"Removes a directory at the provided path. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` doesn't exist. - `path` isn't a directory. - User lacks permissions to modify `path`. - The directory is not empty and `recursive` is false. `path` is relative to the project root."},"removeFile(string)":{"notice":"Removes a file from the filesystem. This cheatcode will revert in the following situations, but is not limited to just these cases: - `path` points to a directory. - The file doesn't exist. - The user lacks permissions to remove the file. `path` is relative to the project root."},"replace(string,string,string)":{"notice":"Replaces occurrences of `from` in the given `string` with `to`."},"resumeGasMetering()":{"notice":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"rpc(string,string)":{"notice":"Performs an Ethereum JSON-RPC request to the current fork URL."},"rpcUrl(string)":{"notice":"Returns the RPC url for the given alias."},"rpcUrlStructs()":{"notice":"Returns all rpc urls and their aliases as structs."},"rpcUrls()":{"notice":"Returns all rpc urls and their aliases `[alias, url][]`."},"serializeAddress(string,string,address)":{"notice":"See `serializeJson`."},"serializeAddress(string,string,address[])":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool)":{"notice":"See `serializeJson`."},"serializeBool(string,string,bool[])":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes)":{"notice":"See `serializeJson`."},"serializeBytes(string,string,bytes[])":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32)":{"notice":"See `serializeJson`."},"serializeBytes32(string,string,bytes32[])":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256)":{"notice":"See `serializeJson`."},"serializeInt(string,string,int256[])":{"notice":"See `serializeJson`."},"serializeJson(string,string)":{"notice":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file. Returns the stringified version of the specific JSON file up to that moment."},"serializeString(string,string,string)":{"notice":"See `serializeJson`."},"serializeString(string,string,string[])":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256)":{"notice":"See `serializeJson`."},"serializeUint(string,string,uint256[])":{"notice":"See `serializeJson`."},"serializeUintToHex(string,string,uint256)":{"notice":"See `serializeJson`."},"setEnv(string,string)":{"notice":"Sets environment variables."},"sign((address,uint256,uint256,uint256),bytes32)":{"notice":"Signs data with a `Wallet`."},"sign(address,bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. Raises error if none of the signers passed into the script have provided address."},"sign(bytes32)":{"notice":"Signs `digest` with signer provided to script using the secp256k1 curve. If `--sender` is provided, the signer with provided address is used, otherwise, if exactly one signer is provided to the script, that signer is used. Raises error if signer passed through `--sender` does not match any unlocked signers or if `--sender` is not provided and not exactly one signer is passed to the script."},"sign(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256k1 curve."},"signP256(uint256,bytes32)":{"notice":"Signs `digest` with `privateKey` using the secp256r1 curve."},"sleep(uint256)":{"notice":"Suspends execution of the main thread for `duration` milliseconds."},"split(string,string)":{"notice":"Splits the given `string` into an array of strings divided by the `delimiter`."},"startBroadcast()":{"notice":"Has all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain. Broadcasting address is determined by checking the following in order: 1. If `--sender` argument was provided, that address is used. 2. If exactly one signer (e.g. private key, hw wallet, keystore) is set when `forge broadcast` is invoked, that signer is used. 3. Otherwise, default foundry sender (1804c8AB1F12E6bbf3894d4083f33e07309d1f38) is used."},"startBroadcast(address)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the address provided that can later be signed and sent onchain."},"startBroadcast(uint256)":{"notice":"Has all subsequent calls (at this call depth only) create transactions with the private key provided that can later be signed and sent onchain."},"startMappingRecording()":{"notice":"Starts recording all map SSTOREs for later retrieval."},"startStateDiffRecording()":{"notice":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order, along with the context of the calls"},"stopAndReturnStateDiff()":{"notice":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"stopBroadcast()":{"notice":"Stops collecting onchain transactions."},"stopMappingRecording()":{"notice":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"toBase64(bytes)":{"notice":"Encodes a `bytes` value to a base64 string."},"toBase64(string)":{"notice":"Encodes a `string` value to a base64 string."},"toBase64URL(bytes)":{"notice":"Encodes a `bytes` value to a base64url string."},"toBase64URL(string)":{"notice":"Encodes a `string` value to a base64url string."},"toLowercase(string)":{"notice":"Converts the given `string` value to Lowercase."},"toString(address)":{"notice":"Converts the given value to a `string`."},"toString(bool)":{"notice":"Converts the given value to a `string`."},"toString(bytes)":{"notice":"Converts the given value to a `string`."},"toString(bytes32)":{"notice":"Converts the given value to a `string`."},"toString(int256)":{"notice":"Converts the given value to a `string`."},"toString(uint256)":{"notice":"Converts the given value to a `string`."},"toUppercase(string)":{"notice":"Converts the given `string` value to Uppercase."},"trim(string)":{"notice":"Trims leading and trailing whitespace from the given `string` value."},"tryFfi(string[])":{"notice":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"unixTime()":{"notice":"Returns the time since unix epoch in milliseconds."},"writeFile(string,string)":{"notice":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeFileBinary(string,bytes)":{"notice":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does. `path` is relative to the project root."},"writeJson(string,string)":{"notice":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"writeJson(string,string,string)":{"notice":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"writeLine(string,string)":{"notice":"Writes line to file, creating a file if it does not exist. `path` is relative to the project root."},"writeToml(string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"writeToml(string,string,string)":{"notice":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = This is useful to replace a specific value of a TOML file, without having to parse the entire thing."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/Vm.sol":"VmSafe"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"}},"version":1},"id":9} \ No newline at end of file diff --git a/deployment/arb1/out/build-info/517cf2913c49566bcb422f2256bce7f2.json b/deployment/arb1/out/build-info/517cf2913c49566bcb422f2256bce7f2.json deleted file mode 100644 index 43cc43a..0000000 --- a/deployment/arb1/out/build-info/517cf2913c49566bcb422f2256bce7f2.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"517cf2913c49566bcb422f2256bce7f2","source_id_to_path":{"0":"lib_forge_std/src/Base.sol","1":"lib_forge_std/src/Script.sol","2":"lib_forge_std/src/StdChains.sol","3":"lib_forge_std/src/StdCheats.sol","4":"lib_forge_std/src/StdJson.sol","5":"lib_forge_std/src/StdMath.sol","6":"lib_forge_std/src/StdStorage.sol","7":"lib_forge_std/src/StdStyle.sol","8":"lib_forge_std/src/StdUtils.sol","9":"lib_forge_std/src/Vm.sol","10":"lib_forge_std/src/console.sol","11":"lib_forge_std/src/console2.sol","12":"lib_forge_std/src/interfaces/IERC165.sol","13":"lib_forge_std/src/interfaces/IERC20.sol","14":"lib_forge_std/src/interfaces/IERC721.sol","15":"lib_forge_std/src/interfaces/IMulticall3.sol","16":"lib_forge_std/src/mocks/MockERC20.sol","17":"lib_forge_std/src/mocks/MockERC721.sol","18":"lib_forge_std/src/safeconsole.sol","19":"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol","20":"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol","21":"lib_openzeppelin_contracts/contracts/token/ERC20/ERC20.sol","22":"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol","23":"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","24":"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol","25":"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol","26":"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol","27":"lib_openzeppelin_contracts/contracts/utils/Context.sol","28":"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol","29":"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol","30":"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol","31":"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol","32":"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol","33":"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol","34":"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol","35":"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol","36":"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol","37":"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol","38":"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol","39":"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol","40":"lib_uniswap/v3-core/contracts/libraries/FullMath.sol","41":"lib_uniswap/v3-core/contracts/libraries/TickMath.sol","42":"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol","43":"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol","44":"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol","45":"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol","46":"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol","47":"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol","48":"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol","49":"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol","50":"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol","51":"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol","52":"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol","53":"script/Deploy.sol","54":"script/DeployArbitrum.sol","55":"script/DeployMirror.sol","56":"script/DeployMock.sol","57":"script/Upgrade.sol","58":"src/core/FeeManager.sol","59":"src/core/IEEE754.sol","60":"src/core/LineLib.sol","61":"src/core/OrderLib.sol","62":"src/core/OrderSpec.sol","63":"src/core/Router.sol","64":"src/core/UniswapSwapper.sol","65":"src/core/UniswapV3.sol","66":"src/core/Util.sol","67":"src/core/Vault.sol","68":"src/core/VaultFactory.sol","69":"src/core/VaultImpl.sol","70":"src/interface/IFeeManager.sol","71":"src/interface/IRouter.sol","72":"src/interface/IVault.sol","73":"src/interface/IVaultFactory.sol","74":"src/more/Dexorder.sol","75":"src/more/FeeManagerLib.sol","76":"src/more/MockERC20.sol","77":"src/more/QueryHelper.sol","78":"src/more/VaultAddress.sol","79":"test/MirrorEnv.sol","80":"test/MockEnv.sol","81":"test/MockUtil.sol"},"language":"Solidity"} \ No newline at end of file diff --git a/deployment/arb1/out/console.sol/console.json b/deployment/arb1/out/console.sol/console.json deleted file mode 100644 index 8137c1b..0000000 --- a/deployment/arb1/out/console.sol/console.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212200b208dc1d1b3f3347a3e2108460be01c35996addbd918e10ad3e148979ccf53c64736f6c634300081a0033","sourceMap":"66:66622:10:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212200b208dc1d1b3f3347a3e2108460be01c35996addbd918e10ad3e148979ccf53c64736f6c634300081a0033","sourceMap":"66:66622:10:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/console.sol":"console"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"}},"version":1},"id":10} \ No newline at end of file diff --git a/deployment/arb1/out/console2.sol/console2.json b/deployment/arb1/out/console2.sol/console2.json deleted file mode 100644 index d1b623f..0000000 --- a/deployment/arb1/out/console2.sol/console2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220e7d50e61ada2934bd84ee1a0a67cdf26a8f9a6768b573325bdfaeffac7d5462864736f6c634300081a0033","sourceMap":"525:69152:11:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e7d50e61ada2934bd84ee1a0a67cdf26a8f9a6768b573325bdfaeffac7d5462864736f6c634300081a0033","sourceMap":"525:69152:11:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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_forge_std/src/console2.sol\":\"console2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/console2.sol":"console2"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"id":11} \ No newline at end of file diff --git a/deployment/arb1/out/draft-IERC6093.sol/IERC1155Errors.json b/deployment/arb1/out/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index b90d436..0000000 --- a/deployment/arb1/out/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC1155InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidArrayLength","inputs":[{"name":"idsLength","type":"uint256","internalType":"uint256"},{"name":"valuesLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC1155InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1155MissingApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC1155InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC1155InvalidApprover"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"type":"error","name":"ERC1155InvalidArrayLength"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC1155InvalidOperator"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC1155InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC1155InvalidSender"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC1155MissingApprovalForAll"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":"IERC1155Errors"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/deployment/arb1/out/draft-IERC6093.sol/IERC20Errors.json b/deployment/arb1/out/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index 19d1afd..0000000 --- a/deployment/arb1/out/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":"IERC20Errors"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/deployment/arb1/out/draft-IERC6093.sol/IERC721Errors.json b/deployment/arb1/out/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index 71dbc09..0000000 --- a/deployment/arb1/out/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":"IERC721Errors"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"}},"version":1},"id":19} \ No newline at end of file diff --git a/deployment/arb1/out/extensions/IERC20Metadata.sol/IERC20Metadata.json b/deployment/arb1/out/extensions/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index 54c02d1..0000000 --- a/deployment/arb1/out/extensions/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","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":"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":"value","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":"value","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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"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\":[],\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","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":[],"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":"value","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":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"}},"version":1},"id":23} \ No newline at end of file diff --git a/deployment/arb1/out/introspection/IERC165.sol/IERC165.json b/deployment/arb1/out/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index 10a748e..0000000 --- a/deployment/arb1/out/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":"IERC165"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"}},"version":1},"id":29} \ No newline at end of file diff --git a/deployment/arb1/out/mocks/MockERC20.sol/MockERC20.json b/deployment/arb1/out/mocks/MockERC20.sol/MockERC20.json deleted file mode 100644 index 8c324da..0000000 --- a/deployment/arb1/out/mocks/MockERC20.sol/MockERC20.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":"owner","type":"address","internalType":"address"},{"name":"spender","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":"owner","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":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"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":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601557611370908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610ef257508063095ea7b314610e4b5780631624f6c61461091557806318160ddd146108d957806323b872dd1461078c578063313ce5671461074d5780633644e5151461070c57806370a08231146106a75780637ecebe001461064257806395d89b4114610529578063a9059cbb14610452578063d505accf146101435763dd62ed3e146100ae57600080fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576100e5610fa1565b73ffffffffffffffffffffffffffffffffffffffff610102610fc4565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b3461013e5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761017a610fa1565b610182610fc4565b604435606435916084359260ff841680940361013e574281106103f45773ffffffffffffffffffffffffffffffffffffffff6101bc6111ae565b9516938460005260086020526040600020908154967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88146103c55760209460009460809460018b0190556040519073ffffffffffffffffffffffffffffffffffffffff888301937f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c985528b6040850152169a8b6060840152898784015260a083015260c082015260c0815261027360e082610fe7565b51902060405190868201927f1901000000000000000000000000000000000000000000000000000000000000845260228301526042820152604281526102ba606282610fe7565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156103b95773ffffffffffffffffffffffffffffffffffffffff60005116801515806103b0575b15610352577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259160209160005260058252604060002085600052825280604060002055604051908152a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152fd5b50828114610306565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e57610489610fa1565b73ffffffffffffffffffffffffffffffffffffffff602435913360005260046020526104ba83604060002054611256565b33600052600460205260406000205516908160005260046020526104e3816040600020546112c8565b8260005260046020526040600020556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760405160006001546105698161109d565b808452906001811690811561060057506001146105a1575b61059d8361059181850382610fe7565b60405191829182610f39565b0390f35b600160009081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106105e657509091508101602001610591610581565b9192600181602092548385880101520191019092916105ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506105919050610581565b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5773ffffffffffffffffffffffffffffffffffffffff61068e610fa1565b1660005260086020526020604060002054604051908152f35b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5773ffffffffffffffffffffffffffffffffffffffff6106f3610fa1565b1660005260046020526020604060002054604051908152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760206107456111ae565b604051908152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e57602060ff60025416604051908152f35b3461013e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576107c3610fa1565b6107cb610fc4565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff80604435951693846000526005835260406000208233166000528352604060002054867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108ae575b5050846000526004835261086786604060002054611256565b85600052600484526040600020551693846000526004825261088e816040600020546112c8565b8560005260048352604060002055604051908152a3602060405160018152f35b6108b791611256565b856000526005845260406000208333166000528452604060002055868661084e565b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576020600354604051908152f35b3461013e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760043567ffffffffffffffff811161013e57610964903690600401611028565b60243567ffffffffffffffff811161013e57610984903690600401611028565b60443560ff811680910361013e5760ff60095416610ded57825167ffffffffffffffff8111610c52576109b860005461109d565b601f8111610d4b575b506020601f8211600114610c8c5781929394600092610c81575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176000555b815167ffffffffffffffff8111610c5257610a2a60015461109d565b601f8111610baf575b50602092601f8211600114610af15792819293600092610ae6575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600254161760025546600655610ab66111c8565b600755600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b015190508380610a4e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169360016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69160005b868110610b975750836001959610610b60575b505050811b01600155610a81565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055838080610b52565b91926020600181928685015181550194019201610b3f565b6001600052601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6019060208310610c2a575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b818110610c1e5750610a33565b60008155600101610c11565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69150610be7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0151905084806109db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821690600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639160005b818110610d3357509583600195969710610cfc575b505050811b01600055610a0e565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055848080610cee565b9192602060018192868b015181550194019201610cd9565b60008052601f820160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019060208310610dc5575b601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301905b818110610db957506109c1565b60008155600101610dac565b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639150610d82565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a4544000000000000000000000000006044820152fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e57610e82610fa1565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e578061059181610f3261059d946110f0565b0382610fe7565b9190916020815282519283602083015260005b848110610f8b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b8060208092840101516040828601015201610f4c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5257604052565b81601f8201121561013e5780359067ffffffffffffffff8211610c52576040519261107b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610fe7565b8284526020838301011161013e57816000926020809301838601378301015290565b90600182811c921680156110e6575b60208310146110b757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916110ac565b90600091600054906111018261109d565b8082529160018116908115611174575060011461111c575050565b60008080529293509091907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b83831061115a575060209250010190565b600181602092949394548385870101520191019190611149565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b60065446036111bd5760075490565b6111c56111c8565b90565b6040516111d881610f32816110f0565b6020815191012060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261125060c082610fe7565b51902090565b9080821061126a5781039081116103c55790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152fd5b908101908181116103c55781106112dc5790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152fdfea26469706673582212204272a3bae787dfe2c7d422bb30d50de72b5fbace220a6d721d02674339b8ede264736f6c634300081a0033","sourceMap":"369:7950:16:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610ef257508063095ea7b314610e4b5780631624f6c61461091557806318160ddd146108d957806323b872dd1461078c578063313ce5671461074d5780633644e5151461070c57806370a08231146106a75780637ecebe001461064257806395d89b4114610529578063a9059cbb14610452578063d505accf146101435763dd62ed3e146100ae57600080fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576100e5610fa1565b73ffffffffffffffffffffffffffffffffffffffff610102610fc4565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b3461013e5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5761017a610fa1565b610182610fc4565b604435606435916084359260ff841680940361013e574281106103f45773ffffffffffffffffffffffffffffffffffffffff6101bc6111ae565b9516938460005260086020526040600020908154967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88146103c55760209460009460809460018b0190556040519073ffffffffffffffffffffffffffffffffffffffff888301937f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c985528b6040850152169a8b6060840152898784015260a083015260c082015260c0815261027360e082610fe7565b51902060405190868201927f1901000000000000000000000000000000000000000000000000000000000000845260228301526042820152604281526102ba606282610fe7565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156103b95773ffffffffffffffffffffffffffffffffffffffff60005116801515806103b0575b15610352577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259160209160005260058252604060002085600052825280604060002055604051908152a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f494e56414c49445f5349474e45520000000000000000000000000000000000006044820152fd5b50828114610306565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e57610489610fa1565b73ffffffffffffffffffffffffffffffffffffffff602435913360005260046020526104ba83604060002054611256565b33600052600460205260406000205516908160005260046020526104e3816040600020546112c8565b8260005260046020526040600020556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760405160006001546105698161109d565b808452906001811690811561060057506001146105a1575b61059d8361059181850382610fe7565b60405191829182610f39565b0390f35b600160009081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106105e657509091508101602001610591610581565b9192600181602092548385880101520191019092916105ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506105919050610581565b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5773ffffffffffffffffffffffffffffffffffffffff61068e610fa1565b1660005260086020526020604060002054604051908152f35b3461013e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5773ffffffffffffffffffffffffffffffffffffffff6106f3610fa1565b1660005260046020526020604060002054604051908152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760206107456111ae565b604051908152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e57602060ff60025416604051908152f35b3461013e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576107c3610fa1565b6107cb610fc4565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff80604435951693846000526005835260406000208233166000528352604060002054867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108ae575b5050846000526004835261086786604060002054611256565b85600052600484526040600020551693846000526004825261088e816040600020546112c8565b8560005260048352604060002055604051908152a3602060405160018152f35b6108b791611256565b856000526005845260406000208333166000528452604060002055868661084e565b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e576020600354604051908152f35b3461013e5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e5760043567ffffffffffffffff811161013e57610964903690600401611028565b60243567ffffffffffffffff811161013e57610984903690600401611028565b60443560ff811680910361013e5760ff60095416610ded57825167ffffffffffffffff8111610c52576109b860005461109d565b601f8111610d4b575b506020601f8211600114610c8c5781929394600092610c81575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176000555b815167ffffffffffffffff8111610c5257610a2a60015461109d565b601f8111610baf575b50602092601f8211600114610af15792819293600092610ae6575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600254161760025546600655610ab66111c8565b600755600980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055005b015190508380610a4e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169360016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69160005b868110610b975750836001959610610b60575b505050811b01600155610a81565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055838080610b52565b91926020600181928685015181550194019201610b3f565b6001600052601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6019060208310610c2a575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b818110610c1e5750610a33565b60008155600101610c11565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69150610be7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0151905084806109db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821690600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639160005b818110610d3357509583600195969710610cfc575b505050811b01600055610a0e565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055848080610cee565b9192602060018192868b015181550194019201610cd9565b60008052601f820160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019060208310610dc5575b601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301905b818110610db957506109c1565b60008155600101610dac565b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639150610d82565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f414c52454144595f494e495449414c495a4544000000000000000000000000006044820152fd5b3461013e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e57610e82610fa1565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461013e5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013e578061059181610f3261059d946110f0565b0382610fe7565b9190916020815282519283602083015260005b848110610f8b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b8060208092840101516040828601015201610f4c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013e57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5257604052565b81601f8201121561013e5780359067ffffffffffffffff8211610c52576040519261107b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610fe7565b8284526020838301011161013e57816000926020809301838601378301015290565b90600182811c921680156110e6575b60208310146110b757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916110ac565b90600091600054906111018261109d565b8082529160018116908115611174575060011461111c575050565b60008080529293509091907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b83831061115a575060209250010190565b600181602092949394548385870101520191019190611149565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b60065446036111bd5760075490565b6111c56111c8565b90565b6040516111d881610f32816110f0565b6020815191012060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261125060c082610fe7565b51902090565b9080821061126a5781039081116103c55790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152fd5b908101908181116103c55781106112dc5790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152fdfea26469706673582212204272a3bae787dfe2c7d422bb30d50de72b5fbace220a6d721d02674339b8ede264736f6c634300081a0033","sourceMap":"369:7950:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;1659:10;369:7950;;;;;;1659:26;369:7950;-1:-1:-1;369:7950:16;;;;;-1:-1:-1;369:7950:16;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;4416:15;4404:27;;369:7950;;;4617:18;;:::i;:::-;369:7950;;;;;;5026:6;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:413;369:7950;4692:413;;;369:7950;4732:157;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:413;;;369:7950;4692:413;;:::i;:::-;369:7950;4657:470;;369:7950;;4547:598;;;;369:7950;;;;;;;;;;;;;4547:598;;;;;;:::i;:::-;369:7950;4520:639;;369:7950;;;;;;;;;;;;;;;;;;;;;;4497:717;;;369:7950;4497:717;;;;;369:7950;;4497:717;369:7950;5233:30;;;:59;;;369:7950;;;;5383:31;369:7950;;;;;5322:10;369:7950;;;;;;-1:-1:-1;369:7950:16;;;;;-1:-1:-1;369:7950:16;;;;;;;5383:31;369:7950;;;;;;;;;;;;;;;;;;;;;;;;5233:59;5267:25;;;;5233:59;;4497:717;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3420:10;;369:7950;;;;;3404:36;369:7950;;;;;3404:36;:::i;:::-;3420:10;369:7950;;;;;;;;;;;;;;;;;3467:28;369:7950;;;;;3467:28;:::i;:::-;369:7950;;;;;;;;;;;;;;;3511:32;369:7950;3420:10;3511:32;;369:7950;;;;;;;;;;;;;;;;;;;;;857:7;369:7950;;;;:::i;:::-;;;;;857:7;369:7950;;;857:7;;;;369:7950;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;857:7;369:7950;;;;;;;-1:-1:-1;369:7950:16;;;;;;;-1:-1:-1;369:7950:16;;-1:-1:-1;369:7950:16;;;;;;;;;;857:7;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;369:7950:16;;-1:-1:-1;369:7950:16;;;;;;;;;;;;;;;;:::i;:::-;;;;1970:41;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;953:9;369:7950;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;3995:26;369:7950;;;;;;;;;;;3709:10;369:7950;;;;;3726:10;;369:7950;-1:-1:-1;369:7950:16;;;;-1:-1:-1;369:7950:16;;3788:22;3799:11;3788:22;;3784:80;;369:7950;;;;;;;;;3894:30;369:7950;;;;;3894:30;:::i;:::-;369:7950;;;;;;;;;;;;;;;;;;3951:28;369:7950;;;;;3951:28;:::i;:::-;369:7950;;;;;;;;;;;;;;;3995:26;369:7950;;;;;;;3784:80;3843:21;;;:::i;:::-;369:7950;;;3709:10;369:7950;;;;;3726:10;;369:7950;-1:-1:-1;369:7950:16;;;;-1:-1:-1;369:7950:16;;3784:80;;;;369:7950;;;;;;;;;;;;1403:12;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2611:11;369:7950;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:17;369:7950;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:17;369:7950;;;;;;;;2680:17;369:7950;;;2707:21;369:7950;;;2707:21;369:7950;7884:53;2739:33;369:7950;2809:24;;:::i;:::-;2782:51;369:7950;2611:11;369:7950;;;;2680:17;369:7950;;;;;;;;-1:-1:-1;369:7950:16;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;;;;;2680:17;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:17;369:7950;;;;;;-1:-1:-1;369:7950:16;;;;;;;;;;;;;;;;-1:-1:-1;369:7950:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;369:7950:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3167:10;;369:7950;;3156:10;369:7950;;;;;;;;-1:-1:-1;369:7950:16;;;;;-1:-1:-1;369:7950:16;;;;;;;;3167:10;3212:37;369:7950;3167:10;3212:37;;369:7950;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;369:7950:16;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;369:7950:16;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5427:178::-;5528:16;369:7950;7884:53;5510:34;:88;;5547:24;369:7950;5427:178;:::o;5510:88::-;5574:24;;:::i;:::-;5427:178;:::o;5611:404::-;369:7950;;;;;;;:::i;:::-;;;;;;5866:23;369:7950;;;5725:273;;369:7950;5753:95;369:7950;;;;;;5907:14;369:7950;;;;7884:53;369:7950;;;;5979:4;369:7950;;;;;5725:273;;;;;;:::i;:::-;369:7950;5702:306;;5611:404;:::o;7038:154::-;;7124:6;;;369:7950;;;;;;;;;7038:154;:::o;369:7950::-;;;;;;;;;;;;;;;;;;;;;;;6859:173;;369:7950;;;;;;;;6972:6;;369:7950;;6859:173;:::o;369:7950::-;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","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.26+commit.8a97fa7a\"},\"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\":\"value\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"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\":\"owner\",\"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\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"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\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","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":"value","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":"owner","type":"address"},{"internalType":"address","name":"spender","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":"owner","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":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"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":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"id":16} \ No newline at end of file diff --git a/deployment/arb1/out/safeconsole.sol/safeconsole.json b/deployment/arb1/out/safeconsole.sol/safeconsole.json deleted file mode 100644 index e107772..0000000 --- a/deployment/arb1/out/safeconsole.sol/safeconsole.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220aac31ebf721242498b2be8efe100c7caee6092d55bea46177887306e67f3106564736f6c634300081a0033","sourceMap":"163:397734:18:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220aac31ebf721242498b2be8efe100c7caee6092d55bea46177887306e67f3106564736f6c634300081a0033","sourceMap":"163:397734:18:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"philogy \",\"details\":\"Code generated automatically by script.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_forge_std/src/safeconsole.sol\":\"safeconsole\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_forge_std/src/safeconsole.sol":"safeconsole"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"id":18} \ No newline at end of file diff --git a/deployment/arb1/version.json b/deployment/arb1/version.json deleted file mode 100644 index 297743f..0000000 --- a/deployment/arb1/version.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": "arb1", - "chainInfo": { - "42161": { - "id": 42161, - "name": "Arbitrum One", - "vaultInitCodeHash": "0x8b1347850b0b1f2e05548c065af07c78f2c0617f70a2915b3cb7e0ba1bd20630", - "dexorder": "0x7a6a4774A5b447bD5A376B6E3a3DDCb647948d99", - "factory": "0x7fb08EAE59e6260B6d62fC1bC199F6B8a9993246", - "helper": "0xC31774FDE0BB4718f6cE9A36f178717C71bE09Fa" - } - } -} \ No newline at end of file diff --git a/script/UpgradeArbitrum.sol b/script/UpgradeArbitrum.sol new file mode 100644 index 0000000..9b57332 --- /dev/null +++ b/script/UpgradeArbitrum.sol @@ -0,0 +1,32 @@ + +pragma solidity 0.8.26; + +import "@forge-std/Script.sol"; +import "@forge-std/console2.sol"; +import {IWETH9} from "../lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol"; +import "../src/interface/IVaultFactory.sol"; +import "../src/core/VaultImpl.sol"; +import {ArbitrumRouter} from "../src/core/Router.sol"; + +contract UpgradeArbitrum is Script { + function run() external { + address factoryAddr = address(0x7fb08EAE59e6260B6d62fC1bC199F6B8a9993246); + console2.log(factoryAddr); + IVaultFactory factory = IVaultFactory(factoryAddr); + address upgrader = factory.upgrader(); + require( msg.sender == upgrader, 'Must be upgrader account'); + + IVaultImpl oldImpl = IVaultImpl(factory.implementation()); + IFeeManager feeManager = oldImpl.feeManager(); + console2.log('retaining fee manager', address(feeManager)); + vm.startBroadcast(); + console2.log('deploy new router (Arbitrum)'); + IRouter router = new ArbitrumRouter(); + console2.log('deploy new implementation'); + VaultImpl impl = new VaultImpl(router, feeManager, oldImpl.wrapper()); + console2.log('invoke upgrade'); + factory.upgradeImplementation(address(impl)); + console2.log('impl upgrade proposed'); + vm.stopBroadcast(); + } +}