UNPKG

moonwalkerswap-v1-core

Version:
244 lines 439 kB
{ "contractName": "MoonwalkerFactory", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "uint24", "name": "", "type": "uint24" } ], "name": "feeAmountTickSpacing", "outputs": [ { "internalType": "int24", "name": "", "type": "int24" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint24", "name": "", "type": "uint24" } ], "name": "getPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "constant": true }, { "inputs": [], "name": "parameters", "outputs": [ { "internalType": "address", "name": "factory", "type": "address" }, { "internalType": "address", "name": "token0", "type": "address" }, { "internalType": "address", "name": "token1", "type": "address" }, { "internalType": "uint24", "name": "fee", "type": "uint24" }, { "internalType": "int24", "name": "tickSpacing", "type": "int24" } ], "stateMutability": "view", "type": "function", "constant": true }, { "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": "address", "name": "_owner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint24", "name": "fee", "type": "uint24" }, { "internalType": "int24", "name": "tickSpacing", "type": "int24" } ], "name": "enableFeeAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"\",\"type\":\"uint24\"}],\"name\":\"feeAmountTickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"name\":\"getPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"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\"}},\"setOwner(address)\":{\"details\":\"Must be called by the current owner\",\"params\":{\"_owner\":\"The new owner of the factory\"}}},\"stateVariables\":{\"feeAmountTickSpacing\":{\"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\"},\"return\":\"The tick spacing\"},\"getPool\":{\"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\"},\"return\":\"pool The pool address\"},\"owner\":{\"details\":\"Can be changed by the current owner via setOwner\",\"return\":\"The address of the factory owner\"}},\"title\":\"Canonical Moonwalker 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\"},\"parameters()\":{\"notice\":\"Get the parameters to be used in constructing the pool, set transiently during pool creation.\"},\"setOwner(address)\":{\"notice\":\"Updates the owner of the factory\"}},\"notice\":\"Deploys Moonwalker pools and manages ownership and control over pool protocol fees\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerFactory.sol\":\"MoonwalkerFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerFactory.sol\":{\"keccak256\":\"0xf11eb04085be0fa1eb5f779fb76102b3abb06aa49db25a693e770f3395f56ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47eebb0fd9e275111a835cf310dcdfa0c5200c5d730bb2c4fb3f95497e148f68\",\"dweb:/ipfs/QmNYQadYVHc4M5jWGsCbxo3j1DPfoKcx1HCTRa2ouRykud\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPool.sol\":{\"keccak256\":\"0xd435702358453955f8e247b5f61148b90024ed41a5057fb5ad29e858a229a227\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://599e092d75252a9362c90f74d638338d6e2fc44d1ad6767276b05624a613156f\",\"dweb:/ipfs/QmTvBiPmgK5HSRyTeCDuWm6KZoa3PVZQEeLzZ3PmV6tCWZ\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/MoonwalkerPoolDeployer.sol\":{\"keccak256\":\"0x0143450066c07926aa1c3f24764870c0761659e77252491fd15984466a0c9c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c9fd217557523c19709ca7c018d9b64a0c54ac1587498191ec5835171619c0d\",\"dweb:/ipfs/Qmap8ohaXp99w5hQuv2NagASzkD9nTpn4kLSF1uaRZjPpY\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/NoDelegateCall.sol\":{\"keccak256\":\"0x386511254c4d6d2633d7ffa3041630379d50e4a1ec492f9ca1b757947290b0e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd48f9bacc3be4e22d68a8b9ff22c009579ac2469c6a7a936f7f9771dcd581f5\",\"dweb:/ipfs/QmTMkABgncwV73CfemiKv9vbmdDJSL75soQr2KjBEwsJkY\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IERC20Minimal.sol\":{\"keccak256\":\"0x7ab95ce2d6a483f0255ecee7068989051c3ed85fce0c44fab13889e7a71334e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a62f6b6dc9ba1843687ad346a10cafc8d86b95d1f498032054f11baef3d6c22e\",\"dweb:/ipfs/QmdiDLfAZLr1pkE8ZVCnSgBocAEejPwstaJJvPN4LZYEcf\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerFactory.sol\":{\"keccak256\":\"0xef710eff542f772b16ac4729719c373436c2eb10206764bfb6a41dd33096f7df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2310bf2f9bfe77324a70ef2faf57f4c0bbf011f15d011b87360d5e035cc41a\",\"dweb:/ipfs/QmdK8PHBsB73CZMFZC2pWKeHire9XZhc638S2xVH9WFx4S\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPool.sol\":{\"keccak256\":\"0xf75566267b21d70d099bcc5e810068457859fd9622df735d710a231685926249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://562145c7d01947f5e859447b991bc0b5a76dea15361962aae150ebd303df7252\",\"dweb:/ipfs/QmYvZTnCekrYL1oBWwoyc2u9jBPRcmcK1iqaANgzgxyZwf\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/IMoonwalkerPoolDeployer.sol\":{\"keccak256\":\"0xdffb36773f8231a4b5816a13f14983b8f7bc2cac803d682bf5b2e9b73cf3a756\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://225881d83166c91b3bb64ea6ee88f0ef74cdeaddf6c28b3552022b43b69bc33b\",\"dweb:/ipfs/QmbNq5c7Apvpk58objNvBLKHiML7S8nLyNaB2uUK3nNLL4\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/callback/IMoonwalkerFlashCallback.sol\":{\"keccak256\":\"0x456376424212df363adc087b56dedac6c014f739adb86640478d1a93ca59f3db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0abf23d373a3983679e9d8c396a59a9c0837ec26c4e94efbfaec9cae4a581a73\",\"dweb:/ipfs/QmZMpv8X5daH19PrTwYQqcpTr51u5zDE2rBqLLFeCuAoz9\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/callback/IMoonwalkerMintCallback.sol\":{\"keccak256\":\"0xfd57ef3ddedb21e814dc6a2e7415c672e4ecd90428f0e33bc70b58e83d07b996\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://14579a25f1f2f26521ce7a79dd936e7afe766a8e617a953917986cc079d7d959\",\"dweb:/ipfs/Qmc4Qv1Sqqq6WuEV8b4iWy95GhtE8B3KwtvKTPFsPfhGpQ\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/callback/IMoonwalkerSwapCallback.sol\":{\"keccak256\":\"0x0709f6eafdc1a998d714c4719e292df3747b0f298a95b994b82e7e0dfc8b70b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2c404b5a8aaf8aabeb87c1228d827e6e31a007cedbf0fe1527bf56f43a43f78\",\"dweb:/ipfs/QmT7fBphTzRgaP4bfL7qtK1kzEbNM5zPhXQaWat7KcHwJN\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolActions.sol\":{\"keccak256\":\"0xbe6848ebe6bc45a3b3dc9e4e471710f990bdf5984ad27aa735ba111ec5251000\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b85fc420f2279fabcc084d0cede0f16a27f5d79719d7aaf1d16c17f106b09ce9\",\"dweb:/ipfs/QmXRbXbZXmfiygmUenvn5osXNqSCogqWq1T16M2GGWfGsU\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolDerivedState.sol\":{\"keccak256\":\"0xdc30625cd50851cca3ce8898c1368c47d12749078132e28802c28213723767fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcf5c236dc728b42471b31cede6a34e49f3a2e5af813a62325d586dc3ed4da83\",\"dweb:/ipfs/Qmd2yDp6v1c7jgzYq7VSjrrDjUNfXs4ms4cKCiCyEQqpyS\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolEvents.sol\":{\"keccak256\":\"0x427dac308f06d66b382235330a372910f9a78dc4f2f61ea3bba4020aeb13aa60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4141da347669273cd5fd7c7908e077ff87f4ef91aa3000536a5e999a9b8bf89d\",\"dweb:/ipfs/QmQ2ViDCBykc3WG5so61vcKdWk2v1wPHUEAPfVc8HziYTL\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolImmutables.sol\":{\"keccak256\":\"0xd0f2dfc66cc3400c6433e0adf4cd40117798f5cdb6963f79a8ff593375773ce2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b03f976151a3a375eadf6f60dd03187bf73f5cd3786ba6b74bcb3e08d6e5c823\",\"dweb:/ipfs/QmYwbt38mnGnB9ovtd9J3Ea8He8BZhrh4ybJ6cCQehZGJj\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolOwnerActions.sol\":{\"keccak256\":\"0x4e0aff2d20141240010056058a6e85faff9357390e1459a717b6bad0a5889ebb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://744646728b66bad9ac7fc5b4074e444ce02503738ae0bd465061d902e4b7e278\",\"dweb:/ipfs/Qmanknkx1G9c7by4b95AQC53FkbMiNBeHnLzES9o5nidN5\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/interfaces/pool/IMoonwalkerPoolState.sol\":{\"keccak256\":\"0xe1d5e6e9fa35b108ad1b5a972a3e594be19265b14a9b77c61e92df577ae5cc76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07653aacb6a2fd1b4c1a583a19786840a4cb1e089de9cda1071e8c3ae816a5fb\",\"dweb:/ipfs/QmafQirBZzrGrykyHz6R9q9qaiH6nHkmteC8NTFLrs8nDx\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0xfdb9011d56f4fc6dbf7dfa9bd191d13c405dc1ef5f295e222d402fedd7b78b4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://635d12ff3353f4996357c4c8798051c49755de9a9431c8068fdd45364c8359f4\",\"dweb:/ipfs/QmfTTffPWDnN1aBeNXgcdozJeBxa9Q6CWJJ2bZh7ZoymKz\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/FixedPoint128.sol\":{\"keccak256\":\"0x2d1f4f73ae0d8f0a210b8d30084659b57c56ac8f2f96011fca36f00a6d417178\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://2ba88933f16cd2df398e19c6ad227268f83c03081b70d243c97116d2ed9bc241\",\"dweb:/ipfs/QmTUGxdh8snzEM9VrTSS47StCg9VVWvvLJtJeNnMTFY4xb\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0xb466ea5c68592e0aab06e0ffa0937b047a2ec0916c2a181dee91f439e06c36d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90e2d3770039b4430765a328d1abc6d035ad5a6e71906ab8f120220f3a9a9899\",\"dweb:/ipfs/QmTJFjBkBJGL98BjRnyH48yDZC94LU42SuuEPkd5qhgTnW\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0xe511530871deaef86692cea9adb6076d26d7b47fd4815ce51af52af981026057\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5a6ae776be3e7dcbd23d49ffbc9d792fed0ddf4b111ebb64b9bb2133ec263e\",\"dweb:/ipfs/QmbAUtWqvipzEARQpFpkzYKBELy3qeW5WXnZxHFU84sxG7\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x2fcb84bece328675849d09dee9439901fd14c852efa2cb84a7dd1ada04a90a1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce303eb639ca62f247a8a49a65f15b25b931fbd64b176c2180a6ea790f99bb11\",\"dweb:/ipfs/QmXehfxvPATibRJ2JWWBnLbDyA7hMk5jWCxidpJfDKGQVD\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LowGasSafeMath.sol\":{\"keccak256\":\"0xf2583083971cf8a4274e14515aabbf9f4855193e34fe2addb0ca7b1589519b0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf0ada2bba8827d459101a2359e4682be749b9ddd0a3c44f26119c9a0898e82\",\"dweb:/ipfs/QmPmKotXLza9j7sjNaXSYY9XbyZhkkQ3nMeWE9tiHKeouC\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/Oracle.sol\":{\"keccak256\":\"0x727f859fedfcb0402e648407042c022e3fa6568cb137ead98606166f10311772\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d5500452fc47f728c5aff23fdecd19ce1083dc7562d7cc241a7e3b6740ded8c2\",\"dweb:/ipfs/QmXPCRHEn68oEM8uMMiWYScGtaUwfkN2DuajiAyzTgHnaF\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/Position.sol\":{\"keccak256\":\"0x7fb1a35fcc8b2104f1899d98cd1ce49b5e3af1bdad9da28a5bcda1d4081465e9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://28f43918f6528913abe8586ea4607281b97cdce35f869ae86369487c6ee6eb6c\",\"dweb:/ipfs/QmTgTRMZ5FQT2MCkgUmuhGbt39uyoiVwgXWNJbzoZqiC4f\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0x4a12ab60fdb663b341bb3a2f5c6631ba40b7b6fa9d131c9540b60dbb4196a27e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d55e89b639f5ea027798cf3f246f38209308e812b8e568d19aa487bcdc8008a0\",\"dweb:/ipfs/QmfRWZGxKK21EgQea2PLxgJ6aypEbQjQSotHiruXGmKVm6\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/SqrtPriceMath.sol\":{\"keccak256\":\"0x4f69701d331d364b69a1cda77cd7b983a0079d36ae0e06b0bb1d64ae56c3705e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://f9ed4f172da650484c97d31cce084e905e69c3f3b072141cb15363f4ed0cd03c\",\"dweb:/ipfs/QmPNDM667PxzbbR8YDbtibFaPMGrcbK71GKpFPkGgDEYvb\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/SwapMath.sol\":{\"keccak256\":\"0xcd310be830646d0d55bef86683847577f742704d227471ad7b4cab3df9c47cf7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e6029f7cbb62563f488ee9c4510fee69b5408b64119065d912c1bd682baeef84\",\"dweb:/ipfs/Qmed5zZvcEbqmDmkyGV2huNzrK3mk8KrF9UQohKWLTcc3n\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/Tick.sol\":{\"keccak256\":\"0xdabed554c4b1fea880edd6cf571840824de530ce51d6c9703cad19221590af5a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://160fc25b4e616c2b51f50a49289c43f269f049d7834c48eafe3356048d9f7824\",\"dweb:/ipfs/QmNbtt4nCxonZ7qfzTuoain4Wo3KiSBmuczP6PexcFnKj6\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickBitmap.sol\":{\"keccak256\":\"0x2035bacd76333baa4ef2bbd6423561638e1b7e97cb19be5b4d61feeea3340364\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://55da2e8d44c094b9aa1a40577f9ff32605516ae45ad54e799ec9d570d007a206\",\"dweb:/ipfs/QmakgjThKgfBTaj6Vvf54oKkxeHqgxKFmyiVbcjstsGDBF\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x1f864a2bf61ba05f3173eaf2e3f94c5e1da4bec0554757527b6d1ef1fe439e4e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5139b586df546a9d1c46804ca400b1cb9ce87236eaf212ebd64edee6747a172a\",\"dweb:/ipfs/QmVa2kcRw3VyuB6j1EVWXACKnkbQZgfXYXNi5voq3XkYG8\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x3f66e0d24a6bfb74a62a667c7229c65add3075375ef77d8eb2f929994bd4ab3e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e1f9dcb71c151c5cd17f7733139100a4a5befb4f1f05e9085e905d0a32276c17\",\"dweb:/ipfs/QmNZBS1kh2y92bKufQbxxfpVRC1aAJDJD5B8qjmFyhuwMq\"]},\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/UnsafeMath.sol\":{\"keccak256\":\"0x5f36d7d16348d8c37fe64fda932018d6e5e8acecd054f0f97d32db62d20c6c88\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4bd4e817ea3d2c26bb2be7e58db3eaa403119562c18d4c09cc92fb31aa231496\",\"dweb:/ipfs/QmbpjgL8Hf1mhmUyf9hpuPk4noGAggCdTqaRBFKqNF3AQw\"]}},\"version\":1}", "bytecode": "0x60a060405234801561001057600080fd5b503060601b608052600380546001600160a01b031916339081179091556040516000907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c908290a36101f4600081815260046020527ffb8cf1d12598d1a039dd1d106665851a96aadf67d0d9ed76fceea282119208b7805462ffffff1916600a908117909155604051909291600080516020615ffa83398151915291a3610bb8600081815260046020527f72dffa9b822156d9cf4b0090fa0b656bcb9cc2b2c60eb6acfc20a34f54b31743805462ffffff1916603c908117909155604051909291600080516020615ffa83398151915291a3612710600081815260046020527f8cc740d51daa94ff54f33bd779c2d20149f524c340519b49181be5a08615f829805462ffffff191660c8908117909155604051909291600080516020615ffa83398151915291a360805160601c615e86610174600039806105515250615e866000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063890357301161005b578063890357301461013b5780638a7c195f146101855780638da5cb5b146101b0578063a1671295146101b85761007d565b806313af4035146100825780631698ee82146100aa57806322afcccb14610102575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101f4565b005b6100e6600480360360608110156100c057600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff16610267565b604080516001600160a01b039092168252519081900360200190f35b6101246004803603602081101561011857600080fd5b503562ffffff16610293565b6040805160029290920b8252519081900360200190f35b6101436102a8565b604080516001600160a01b0396871681529486166020860152929094168383015262ffffff16606083015260029290920b608082015290519081900360a00190f35b6100a86004803603604081101561019b57600080fd5b5062ffffff813516906020013560020b6102de565b6100e66103a1565b6100e6600480360360608110156101ce57600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff166103b0565b6003546001600160a01b0316331461020b57600080fd5b6003546040516001600160a01b038084169216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b60056020908152600093845260408085208252928452828420905282529020546001600160a01b031681565b60046020526000908152604090205460020b81565b600054600154600280546001600160a01b03938416939283169281169162ffffff600160a01b83041691600160b81b9004900b85565b6003546001600160a01b031633146102f557600080fd5b620f42408262ffffff161061030957600080fd5b60008160020b13801561032057506140008160020b125b61032957600080fd5b62ffffff8216600090815260046020526040902054600290810b900b1561034f57600080fd5b62ffffff828116600081815260046020526040808220805462ffffff1916600287900b958616179055517fc66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc9190a35050565b6003546001600160a01b031681565b60006103ba610546565b826001600160a01b0316846001600160a01b031614156103d957600080fd5b600080846001600160a01b0316866001600160a01b0316106103fc5784866103ff565b85855b90925090506001600160a01b03821661041757600080fd5b62ffffff8416600090815260046020526040902054600290810b9081900b61043e57600080fd5b6001600160a01b0383811660009081526005602090815260408083208685168452825280832062ffffff8a168452909152902054161561047d57600080fd5b61048a308484888561057d565b6001600160a01b03808516600081815260056020818152604080842089871680865290835281852062ffffff8e168087529084528286208054988a166001600160a01b0319998a1681179091558287529484528286208787528452828620818752845294829020805490971684179096558051600289900b815291820192909252815195995091947f783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b71189281900390910190a45050509392505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461057b57600080fd5b565b6040805160a0810182526001600160a01b03878116808352878216602080850182905292881684860181905262ffffff888116606080880182905260028a810b6080998a01819052600080546001600160a01b03199081169099178155600180548a16891790558254909816861762ffffff60a01b1916600160a01b85021762ffffff60b81b1916600160b81b91830b9095160293909317909255875180870194909452838801929092528281019190915285518083039091018152930193849052825192909101919091209091610654906106ab565b8190604051809103906000f5905080158015610674573d6000803e3d6000fd5b50600080546001600160a01b0319908116909155600180549091169055600280546001600160d01b03191690559695505050505050565b615798806106b98339019056fe6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002adb17901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61554e6200024a60003980611fab5280614a4d5280614a84525080610bd852806128975280614ab85280614aea525080610cc7528061198852806119bf52806128df5250806111855280611a425280611eb152806123e652806128bb5280613d7c5250806108aa52806112b35280611a115280611e4b52806123605280613c33525080612038528061221f5280612873525080612b52525061554e6000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370cf754a116100de578063c45a015511610097578063ddca3f4311610071578063ddca3f43146107d8578063f3058399146107f8578063f30dba9314610800578063f637731d146108825761018e565b8063c45a0155146107a9578063d0c93a7c146107b1578063d21220a7146107d05761018e565b806370cf754a146105a05780638206a4d1146105a857806385b66729146105d0578063883bdbfd1461060d578063a34123a714610714578063a38807f21461074e5761018e565b80633850c7bd1161014b578063490e6cbc11610125578063490e6cbc1461044c5780634f1eb3d8146104d6578063514ea4bf146105275780635339c296146105805761018e565b80633850c7bd146103395780633c8a7d8d1461039257806346141319146104325761018e565b80630dfe168114610193578063128acb08146101b75780631a686502146102645780631ad8b03b14610288578063252c09d7146102bf57806332148f6714610316575b600080fd5b61019b6108a8565b604080516001600160a01b039092168252519081900360200190f35b61024b600480360360a08110156101cd57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a081016080820135600160201b81111561020d57600080fd5b82018360208201111561021f57600080fd5b803590602001918460018302840111600160201b8311171561024057600080fd5b5090925090506108cc565b6040805192835260208301919091528051918290030190f35b61026c61146b565b604080516001600160801b039092168252519081900360200190f35b61029061147a565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102dc600480360360208110156102d557600080fd5b5035611494565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103376004803603602081101561032c57600080fd5b503561ffff166114d9565b005b6103416115d3565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61024b600480360360a08110156103a857600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a081016080820135600160201b8111156103f457600080fd5b82018360208201111561040657600080fd5b803590602001918460018302840111600160201b8311171561042757600080fd5b509092509050611623565b61043a6118df565b60408051918252519081900360200190f35b6103376004803603608081101561046257600080fd5b6001600160a01b038235169160208101359160408201359190810190608081016060820135600160201b81111561049857600080fd5b8201836020820111156104aa57600080fd5b803590602001918460018302840111600160201b831117156104cb57600080fd5b5090925090506118e5565b610290600480360360a08110156104ec57600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d40565b6105446004803603602081101561053d57600080fd5b5035611f5a565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61043a6004803603602081101561059657600080fd5b503560010b611f97565b61026c611fa9565b610337600480360360408110156105be57600080fd5b5060ff81358116916020013516611fcd565b610290600480360360608110156105e657600080fd5b506001600160a01b03813516906001600160801b03602082013581169160400135166121b1565b61067b6004803603602081101561062357600080fd5b810190602081018135600160201b81111561063d57600080fd5b82018360208201111561064f57600080fd5b803590602001918460208302840111600160201b8311171561067057600080fd5b50909250905061247e565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106bf5781810151838201526020016106a7565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156106fe5781810151838201526020016106e6565b5050505090500194505050505060405180910390f35b61024b6004803603606081101561072a57600080fd5b508035600290810b91602081013590910b90604001356001600160801b031661250b565b6107786004803603604081101561076457600080fd5b508035600290810b9160200135900b612682565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b61019b612871565b6107b9612895565b6040805160029290920b8252519081900360200190f35b61019b6128b9565b6107e06128dd565b6040805162ffffff9092168252519081900360200190f35b61043a612901565b6108206004803603602081101561081657600080fd5b503560020b612907565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b6103376004803603602081101561089857600080fd5b50356001600160a01b0316612971565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108d7612b47565b8561090e576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109c7576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a125780600001516001600160a01b0316866001600160a01b0316118015610a0d575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a44565b80600001516001600160a01b0316866001600160a01b0316108015610a4457506401000276a36001600160a01b038716115b610a7b576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610aaa5760048460a0015160ff16901c610abd565b60108460a0015160ff1681610abb57fe5b065b60ff1681526004546001600160801b03166020820152604001610ade612b7e565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b5a57600254610b5e565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bad5750886001600160a01b031681604001516001600160a01b031614155b15610f7757610bba6154b5565b60408201516001600160a01b031681526060820151610bfd906006907f00000000000000000000000000000000000000000000000000000000000000008f612b82565b15156040830152600290810b810b60208301819052620d89e719910b1215610c2e57620d89e7196020820152610c4d565b6020810151620d89e860029190910b1315610c4d57620d89e860208201525b610c5a8160200151612cc4565b6001600160a01b031660608201526040820151610ceb908d610c94578b6001600160a01b031683606001516001600160a01b031611610cae565b8b6001600160a01b031683606001516001600160a01b0316105b610cbc578260600151610cbe565b8b5b60c085015185517f0000000000000000000000000000000000000000000000000000000000000000612ff5565b60c085015260a084015260808301526001600160a01b031660408301528215610d4d57610d218160c001518260800151016131e7565b825103825260a0810151610d4390610d38906131e7565b6020840151906131fd565b6020830152610d88565b610d5a8160a001516131e7565b825101825260c08101516080820151610d8291610d7791016131e7565b602084015190613219565b60208301525b835160ff1615610dce576000846000015160ff168260c0015181610da857fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e0d57610e018160c00151600160801b8460c001516001600160801b031661322f565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f3657806040015115610f0d578360a00151610e9757610e75846040015160008760200151886040015188602001518a6060015160086132df909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610ee382602001518e610eae57600154610eb4565b84608001515b8f610ec3578560800151610ec7565b6002545b608089015160608a015160408b01516005959493929190613471565b90508c15610eef576000035b610efd8360c001518261352b565b6001600160801b031660c0840152505b8b610f1c578060200151610f25565b60018160200151035b600290810b900b6060830152610f71565b80600001516001600160a01b031682604001516001600160a01b031614610f7157610f6482604001516135e1565b600290810b900b60608301525b50610b87565b836020015160020b816060015160020b1461104557600080610fc586604001518660400151886020015188602001518a606001518b6080015160086138fc909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b9390931692909202919091176001600160a01b0319166001600160a01b039091161790555061106a9050565b6040810151600080546001600160a01b0319166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110b05760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561110057608081015160015560a08101516001600160801b0316156110fb5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611146565b608081015160025560a08101516001600160801b0316156111465760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b15151461115f57602081015181518b0361116c565b80600001518a0381602001515b90965094508a156112a55760008512156111ae576111ae7f00000000000000000000000000000000000000000000000000000000000000008d87600003613a97565b60006111b8613be5565b9050336001600160a01b0316639e040f7f88888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561123c57600080fd5b505af1158015611250573d6000803e3d6000fd5b5050505061125c613be5565b6112668289613d1e565b111561129f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b506113cf565b60008612156112dc576112dc7f00000000000000000000000000000000000000000000000000000000000000008d88600003613a97565b60006112e6613d2e565b9050336001600160a01b0316639e040f7f88888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b5050505061138a613d2e565b6113948288613d1e565b11156113cd576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114a557600080fd5b015463ffffffff81169150600160201b810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff1661151d576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611532612b47565b60008054600160d81b900461ffff169061154e60088385613dc6565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115bb576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff1661166a576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b03851661168a57600080fd5b6000806116d860405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016116ce8a6001600160801b0316613e69565b600f0b9052613e7a565b925092505081935080925060008060008611156116fa576116f7613be5565b91505b841561170b57611708613d2e565b90505b336001600160a01b031663a8572a5087878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561178d57600080fd5b505af11580156117a1573d6000803e3d6000fd5b5050505060008611156117f8576117b6613be5565b6117c08388613d1e565b11156117f8576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561184857611806613d2e565b6118108287613d1e565b1115611848576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff16611929576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905561193e612b47565b6004546001600160801b031680611980576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119b5867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406140ba565b905060006119ec867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406140ba565b905060006119f8613be5565b90506000611a04613d2e565b90508815611a3757611a377f00000000000000000000000000000000000000000000000000000000000000008b8b613a97565b8715611a6857611a687f00000000000000000000000000000000000000000000000000000000000000008b8a613a97565b336001600160a01b031663f8ed26dc85858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611aea57600080fd5b505af1158015611afe573d6000803e3d6000fd5b505050506000611b0c613be5565b90506000611b18613d2e565b905081611b258588613d1e565b1115611b5d576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611b688487613d1e565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c2f5760008054600160e81b9004600f16908115611bd3578160ff168481611bcd57fe5b04611bd6565b60005b90506001600160801b03811615611c0957600380546001600160801b038082168401166001600160801b03199091161790555b611c23818503600160801b8d6001600160801b031661322f565b60018054909101905550505b8015611cba5760008054600160e81b900460041c600f16908115611c5f578160ff168381611c5957fe5b04611c62565b60005b90506001600160801b03811615611c9457600380546001600160801b03600160801b8083048216850182160291161790555b611cae818403600160801b8d6001600160801b031661322f565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611d87576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611da160073389896140f4565b60038101549091506001600160801b0390811690861611611dc25784611dd1565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611df95783611e0f565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611e74576003810180546001600160801b031981166001600160801b03918216869003821617909155611e74907f0000000000000000000000000000000000000000000000000000000000000000908a908616613a97565b6001600160801b03821615611eda576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611eda907f0000000000000000000000000000000000000000000000000000000000000000908a908516613a97565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612011576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b15801561207e57600080fd5b505afa158015612092573d6000803e3d6000fd5b505050506040513d60208110156120a857600080fd5b50516001600160a01b031633146120be57600080fd5b60ff821615806120e1575060048260ff16101580156120e15750600a8260ff1611155b801561210b575060ff8116158061210b575060048160ff161015801561210b5750600a8160ff1611155b61211457600080fd5b60008054610ff0600484901b16840160ff908116600160e81b90810260ff60e81b19841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff166121f8576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b15801561226557600080fd5b505afa158015612279573d6000803e3d6000fd5b505050506040513d602081101561228f57600080fd5b50516001600160a01b031633146122a557600080fd5b6003546001600160801b03908116908516116122c157836122ce565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116122f45782612308565b600354600160801b90046001600160801b03165b90506001600160801b03821615612389576003546001600160801b038381169116141561233757600019909101905b600380546001600160801b031981166001600160801b03918216859003821617909155612389907f00000000000000000000000000000000000000000000000000000000000000009087908516613a97565b6001600160801b0381161561240f576003546001600160801b03828116600160801b9092041614156123ba57600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561240f907f00000000000000000000000000000000000000000000000000000000000000009087908416613a97565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b606080612489612b47565b612500612494612b7e565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614158565b915091509250929050565b600080548190600160f01b900460ff16612552576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b91810191909152819081906125ab906060810161259e6001600160801b038a16613e69565b600003600f0b9052613e7a565b92509250925081600003945080600003935060008511806125cc5750600084115b1561260b576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b17905550909