@zoralabs/limit-orders 0.2.1 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.abi-stability +70 -0
- package/.turbo/turbo-build$colon$js.log +50 -51
- package/CHANGELOG.md +35 -0
- package/abis/ISetLimitOrderConfig.json +27 -0
- package/abis/{SimpleAccessManaged.json → Ownable.json} +29 -10
- package/abis/Ownable2Step.json +115 -0
- package/abis/PermittedCallers.json +181 -0
- package/abis/SwapWithLimitOrders.json +116 -3
- package/abis/ZoraLimitOrderBook.json +159 -35
- package/cache/solidity-files-cache.json +1 -1
- package/dist/index.cjs +191 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +191 -27
- package/dist/index.js.map +1 -1
- package/dist/wagmiGenerated.d.ts +217 -32
- package/dist/wagmiGenerated.d.ts.map +1 -1
- package/out/BalanceDelta.sol/BalanceDeltaLibrary.json +1 -1
- package/out/BeforeSwapDelta.sol/BeforeSwapDeltaLibrary.json +1 -1
- package/out/BitMath.sol/BitMath.json +1 -1
- package/out/BytesLib.sol/BytesLib.json +1 -1
- package/out/CoinCommon.sol/CoinCommon.json +1 -1
- package/out/CoinConfigurationVersions.sol/CoinConfigurationVersions.json +1 -1
- package/out/CoinConstants.sol/CoinConstants.json +1 -1
- package/out/Context.sol/Context.json +1 -1
- package/out/Currency.sol/CurrencyLibrary.json +1 -1
- package/out/CurrencyReserves.sol/CurrencyReserves.json +1 -1
- package/out/CustomRevert.sol/CustomRevert.json +1 -1
- package/out/DopplerMath.sol/DopplerMath.json +1 -1
- package/out/FixedPoint128.sol/FixedPoint128.json +1 -1
- package/out/FixedPoint96.sol/FixedPoint96.json +1 -1
- package/out/FullMath.sol/FullMath.json +1 -1
- package/out/IAllowanceTransfer.sol/IAllowanceTransfer.json +1 -1
- package/out/ICoin.sol/ICoin.json +1 -1
- package/out/ICoin.sol/IHasCoinType.json +1 -1
- package/out/ICoin.sol/IHasPoolKey.json +1 -1
- package/out/ICoin.sol/IHasSwapPath.json +1 -1
- package/out/ICoin.sol/IHasTotalSupplyForPositions.json +1 -1
- package/out/IDeployedCoinVersionLookup.sol/IDeployedCoinVersionLookup.json +1 -1
- package/out/IDopplerErrors.sol/IDopplerErrors.json +1 -1
- package/out/IEIP712.sol/IEIP712.json +1 -1
- package/out/IERC1363.sol/IERC1363.json +1 -1
- package/out/IERC165.sol/IERC165.json +1 -1
- package/out/IERC20.sol/IERC20.json +1 -1
- package/out/IERC20Minimal.sol/IERC20Minimal.json +1 -1
- package/out/IERC6909Claims.sol/IERC6909Claims.json +1 -1
- package/out/IERC7572.sol/IERC7572.json +1 -1
- package/out/IExtsload.sol/IExtsload.json +1 -1
- package/out/IExttload.sol/IExttload.json +1 -1
- package/out/IHasRewardsRecipients.sol/IHasRewardsRecipients.json +1 -1
- package/out/IHooks.sol/IHooks.json +1 -1
- package/out/IMsgSender.sol/IMsgSender.json +1 -1
- package/out/IPoolManager.sol/IPoolManager.json +1 -1
- package/out/IProtocolFees.sol/IProtocolFees.json +1 -1
- package/out/ISetLimitOrderConfig.sol/ISetLimitOrderConfig.json +1 -0
- package/out/ISupportsLimitOrderFill.sol/ISupportsLimitOrderFill.json +1 -1
- package/out/ISwapPathRouter.sol/ISwapPathRouter.json +1 -1
- package/out/ISwapRouter.sol/ISwapRouter.json +1 -1
- package/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +1 -1
- package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4Hook.json +1 -1
- package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4HookWithUpdateableFee.json +1 -1
- package/out/IUpgradeableV4Hook.sol/IUpgradeableV4Hook.json +1 -1
- package/out/IWETH.sol/IWETH.json +1 -1
- package/out/IZoraHookRegistry.sol/IZoraHookRegistry.json +1 -1
- package/out/IZoraLimitOrderBook.sol/IZoraLimitOrderBook.json +1 -1
- package/out/IZoraLimitOrderBookCoinsInterface.sol/IZoraLimitOrderBookCoinsInterface.json +1 -1
- package/out/IZoraV4CoinHook.sol/IZoraV4CoinHook.json +1 -1
- package/out/LimitOrderBitmap.sol/LimitOrderBitmap.json +1 -1
- package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -1
- package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -1
- package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -1
- package/out/LimitOrderLiquidity.sol/LimitOrderLiquidity.json +1 -1
- package/out/LimitOrderViews.sol/LimitOrderViews.json +1 -1
- package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -1
- package/out/LiquidityAmounts.sol/LiquidityAmounts.json +1 -1
- package/out/LiquidityMath.sol/LiquidityMath.json +1 -1
- package/out/Lock.sol/Lock.json +1 -1
- package/out/NonzeroDeltaCount.sol/NonzeroDeltaCount.json +1 -1
- package/out/Ownable.sol/Ownable.json +1 -0
- package/out/Ownable2Step.sol/Ownable2Step.json +1 -0
- package/out/Path.sol/Path.json +1 -1
- package/out/PathKey.sol/PathKeyLibrary.json +1 -1
- package/out/PermittedCallers.sol/PermittedCallers.json +1 -0
- package/out/PoolId.sol/PoolIdLibrary.json +1 -1
- package/out/Position.sol/Position.json +1 -1
- package/out/SafeCast.sol/SafeCast.json +1 -1
- package/out/SafeCast160.sol/SafeCast160.json +1 -1
- package/out/SafeERC20.sol/SafeERC20.json +1 -1
- package/out/SqrtPriceMath.sol/SqrtPriceMath.json +1 -1
- package/out/StateLibrary.sol/StateLibrary.json +1 -1
- package/out/SwapLimitOrders.sol/SwapLimitOrders.json +1 -1
- package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -1
- package/out/TickBitmap.sol/TickBitmap.json +1 -1
- package/out/TickMath.sol/TickMath.json +1 -1
- package/out/TransientSlot.sol/TransientSlot.json +1 -1
- package/out/TransientStateLibrary.sol/TransientStateLibrary.json +1 -1
- package/out/UniV4SwapToCurrency.sol/UniV4SwapToCurrency.json +1 -1
- package/out/UnsafeMath.sol/UnsafeMath.json +1 -1
- package/out/V3ToV4SwapLib.sol/V3ToV4SwapLib.json +1 -1
- package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -1
- package/out/build-info/68b2e124c4a02a45.json +1 -0
- package/out/uniswap/BitMath.sol/BitMath.json +1 -1
- package/out/uniswap/CustomRevert.sol/CustomRevert.json +1 -1
- package/out/uniswap/FullMath.sol/FullMath.json +1 -1
- package/out/uniswap/SafeCast.sol/SafeCast.json +1 -1
- package/out/uniswap/TickMath.sol/TickMath.json +1 -1
- package/package/wagmiGenerated.ts +190 -26
- package/package.json +4 -2
- package/src/IZoraLimitOrderBook.sol +3 -5
- package/src/ZoraLimitOrderBook.sol +14 -45
- package/src/access/PermittedCallers.sol +45 -0
- package/src/libs/LimitOrderBitmap.sol +0 -1
- package/src/libs/LimitOrderCommon.sol +14 -0
- package/src/libs/LimitOrderCreate.sol +6 -0
- package/src/libs/LimitOrderFill.sol +3 -20
- package/src/libs/LimitOrderLiquidity.sol +61 -38
- package/src/libs/LimitOrderWithdraw.sol +2 -6
- package/src/libs/SwapLimitOrders.sol +13 -7
- package/src/router/ISetLimitOrderConfig.sol +12 -0
- package/src/router/SwapWithLimitOrders.sol +9 -9
- package/test/LimitOrderAccessControl.t.sol +173 -156
- package/test/LimitOrderFill.t.sol +0 -5
- package/test/LimitOrderLiquidityPayouts.t.sol +14 -14
- package/test/SwapWithLimitOrders.t.sol +0 -2
- package/test/SwapWithLimitOrdersRouter.t.sol +4 -2
- package/test/gas/LimitOrderFillGas.t.sol +0 -7
- package/test/gas/LimitOrderSwapGas.t.sol +0 -6
- package/test/unit/LimitOrderCreateUnit.t.sol +17 -17
- package/test/unit/SwapLimitOrdersUnit.t.sol +49 -88
- package/test/unit/SwapLimitOrdersValidation.t.sol +11 -19
- package/test/utils/BaseTest.sol +8 -17
- package/test/utils/TestableZoraLimitOrderBook.sol +2 -2
- package/abis/IAuthority.json +0 -31
- package/abis/SimpleAccessManager.json +0 -351
- package/out/IAuthority.sol/IAuthority.json +0 -1
- package/out/SimpleAccessManaged.sol/SimpleAccessManaged.json +0 -1
- package/out/SimpleAccessManager.sol/SimpleAccessManager.json +0 -1
- package/out/build-info/876cc09bc44cc8a7.json +0 -1
- package/src/access/SimpleAccessManaged.sol +0 -76
- package/src/access/SimpleAccessManager.sol +0 -268
- package/test/SimpleAccessManager.t.sol +0 -420
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"contract IPoolManager"},{"name":"zoraLimitOrderBook_","type":"address","internalType":"contract IZoraLimitOrderBook"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"},{"name":"permit2_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getLimitOrderConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"setLimitOrderConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"swapWithLimitOrders","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"limitOrderConfig","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]},{"name":"inputCurrency","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"v3Route","type":"bytes","internalType":"bytes"},{"name":"v4Route","type":"tuple[]","internalType":"struct PoolKey[]","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"delta","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"payable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"zoraLimitOrderBook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraLimitOrderBook"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderConfigUpdated","inputs":[{"name":"multiples","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"SwapWithLimitOrdersExecuted","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"poolKey","type":"tuple","indexed":false,"internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"tickBeforeSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"tickAfterSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"amount0","type":"int128","indexed":false,"internalType":"int128"},{"name":"amount1","type":"int128","indexed":false,"internalType":"int128"},{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"orders","type":"tuple[]","indexed":false,"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","components":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"multiple","type":"uint256","internalType":"uint256"},{"name":"percentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"EmptyV4Route","inputs":[]},{"type":"error","name":"InsufficientInputCurrency","inputs":[{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientOutputAmount","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidLimitOrderConfig","inputs":[]},{"type":"error","name":"InvalidMultiple","inputs":[]},{"type":"error","name":"InvalidPercent","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"OnlyAuthority","inputs":[]},{"type":"error","name":"OnlyPoolManager","inputs":[]},{"type":"error","name":"PercentOverflow","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnsafeCast","inputs":[]},{"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart","inputs":[]},{"type":"error","name":"ZeroSwapDelta","inputs":[]}],"bytecode":{"object":"0x6101003461026957601f61384038819003918201601f19168301916001600160401b0383118484101761026d578084926080946040528339810103126102695780516001600160a01b03811691908281036102695760208201516001600160a01b03811692909190838303610269576040810151936001600160a01b0385169182860361026957606001516001600160a01b0381169690879003610269571561022457156101d5571561019057831561014b5760805260a05260c05260e0526040516135be908161028282396080518181816105d9015281816108f901528181610e1c015281816114f3015281816117270152818161196901528181611bd101528181611ca00152611d54015260a05181818160df0152818161036101528181611a1301528181611b000152612279015260c05181818161044a0152610655015260e0518161057c0152f35b60405162461bcd60e51b815260206004820152601660248201527f5065726d6974322063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f53776170526f757465722063616e6e6f74206265207a65726f000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602160248201527f5a6f72614c696d69744f72646572426f6f6b2063616e6e6f74206265207a65726044820152606f60f81b6064820152608490fd5b60405162461bcd60e51b815260206004820152601a60248201527f506f6f6c4d616e616765722063616e6e6f74206265207a65726f0000000000006044820152606490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100995780636baaa1671461009457806391dd73461461008f578063c31c9c071461008a578063c48677f414610085578063d737d0c714610080578063dc4c90d31461007b5763e3e8580c0361000e57610985565b6108e4565b6108b2565b610479565b610435565b6103c8565b61034c565b346101b15760203660031901126101b1576004356001600160401b0381116101b1576100c99036906004016102e3565b60405163bf7e214f60e01b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156101ac577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c9261014e915f9161017d575b506001600160a01b03163314610a50565b610157816113b2565b5061016181610afe565b602081519101519061017860405192839283610bc4565b0390a1005b61019f915060203d6020116101a5575b610197818361021f565b810190610a30565b8461013d565b503d61018d565b610a45565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176101e457604052565b6101b5565b60a081019081106001600160401b038211176101e457604052565b606081019081106001600160401b038211176101e457604052565b90601f801991011681019081106001600160401b038211176101e457604052565b6040519061024f60808361021f565b565b6040519061024f60c08361021f565b6040519061024f60608361021f565b6001600160401b0381116101e45760051b60200190565b9080601f830112156101b157813561029d8161026f565b926102ab604051948561021f565b81845260208085019260051b8201019283116101b157602001905b8282106102d35750505090565b81358152602091820191016102c6565b91906040838203126101b157604051906102fc826101c9565b819380356001600160401b0381116101b1578261031a918301610286565b83526020810135916001600160401b0383116101b15760209261033d9201610286565b910152565b5f9103126101b157565b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206103c5928181520190610390565b90565b346101b15760203660031901126101b1576004356001600160401b0381116101b157366023820112156101b1578060040135906001600160401b0382116101b15736602483830101116101b1576104319160246104259201610e1a565b604051918291826103b4565b0390f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126101b1576004356001600160401b0381116101b1578060040160e060031983360301126101b1576104b181610f25565b5f51602061359e5f395f51905f525d60248201906104cf8282610f2f565b6104d890610f44565b6104e1906113b2565b506104ec8282610f2f565b6104f590610f44565b6104fe90611e57565b60a4830161050c8183610f4f565b61051891501515610f84565b60848401926105278484610f9a565b9590604482019661053788610f25565b906105428688610f4f565b939091369061055092610fe7565b92369061055c92610c77565b9061056692611f0c565b61056f86610f25565b91606482013592343033867f0000000000000000000000000000000000000000000000000000000000000000946105a595611f96565b6105af8486610f4f565b6105b98688610f4f565b6105c3915061101d565b906105cd92611044565b6105d690611059565b967f00000000000000000000000000000000000000000000000000000000000000009360a08920610607908661204b565b505098610615915088610f9a565b9261061f90610f25565b90610628610240565b93369061063492610fe7565b83526001600160a01b031660208301526040820152306060820152610679907f000000000000000000000000000000000000000000000000000000000000000061213e565b9061068387610f25565b9561068e9088610f4f565b9460c401359361069e9089610f2f565b946106a7610251565b6001600160a01b03909816885236906106bf92610c77565b602087015260408601526001600160a01b031660608501526080840152366106e6916102e3565b60a0830152604051809260208201906106fe916110a7565b03601f1981018352610710908361021f565b6040516348c8949160e01b8152918290819061072f90600483016103b4565b6001600160a01b039093169203815a5f948591f180156101ac57610764915f91610890575b50602080825183010191016111d6565b9250909592610791610785610785610785608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa9283156101ac577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f609661082394610802925f91610861575b501580610851575b61084157610f25565b9360405195869560018060a01b031699339983600f0b9360801d92886112be565b0390a35f5f51602061359e5f395f51905f525d6040515f8152602090f35b61084c8a8a89612268565b610f25565b508960020b8960020b14156107f9565b610883915060203d602011610889575b61087b818361021f565b8101906112aa565b5f6107f1565b503d610871565b6108ac91503d805f833e6108a4818361021f565b810190611151565b5f610754565b346101b1575f3660031901126101b1576040516001600160a01b035f51602061359e5f395f51905f525c168152602090f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90602080835192838152019201905f5b8181106109455750505090565b8251845260209384019390920191600101610938565b6103c59160206109748351604084526040840190610928565b920151906020818403910152610928565b346101b1575f3660031901126101b157606060206040516109a5816101c9565b82815201526040516109b6816101c9565b604051905f5480835260208301905f805260205f20905f5b818110610a095761043185876109e68188038261021f565b81526109f0611314565b602082015260405191829160208352602083019061095b565b82548452602090930192600192830192016109ce565b6001600160a01b038116036101b157565b908160209103126101b157516103c581610a1f565b6040513d5f823e3d90fd5b15610a5757565b63d9a88cdb60e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b8151916001600160401b0383116101e457600160401b83116101e4578154838355808410610ad8575b506020610ab59101915f5260205f2090565b5f5b838110610ac45750505050565b600190602084519401938184015501610ab7565b825f528360205f2091820191015b818110610af35750610aa3565b5f8155600101610ae6565b80518051906001600160401b0382116101e457600160401b82116101e4575f54825f55808310610b81575b505f80526020017f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635f5b838110610b6d5750505050602061024f9101516001610a7a565b600190602084519401938184015501610b53565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639081019083015b818110610bb95750610b29565b5f8155600101610bac565b9091610bdb6103c593604084526040840190610928565b916020818403910152610928565b359061024f82610a1f565b8060020b036101b157565b91908260a09103126101b157604051610c17816101e9565b80928035610c2481610a1f565b82526020810135610c3481610a1f565b6020830152604081013562ffffff811681036101b157608091829160408501526060810135610c6281610bf4565b6060850152013591610c7383610a1f565b0152565b90929192610c848161026f565b93610c92604051958661021f565b60a06020868481520192028301928184116101b157915b838310610cb65750505050565b602060a091610cc58486610bff565b815201920191610ca9565b9080601f830112156101b1578160206103c593359101610c77565b6020818303126101b1578035906001600160401b0382116101b1570160c0818303126101b157610d19610251565b91610d2382610be9565b835260208201356001600160401b0381116101b15781610d44918401610cd0565b602084015260408201356040840152610d5f60608301610be9565b60608401526080820135608084015260a08201356001600160401b0381116101b157610d8b92016102e3565b60a082015290565b90602080835192838152019201905f5b818110610db05750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610da3565b919594939092610df860809460a0855260a0850190610d93565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610f1657610e5691810190610ceb565b6103c5610e6282611486565b610f08610ecc610ef66040610e8e6020880151610e88602088015160018060a01b031690565b906116c8565b9691939098610e9c8561171e565b9690958b8789610eb2885160018060801b031690565b60a0870151875190948f916001600160a01b03169661192f565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611bbc565b01519160405196879560208701610dde565b03601f19810183528261021f565b63f655705d60e01b5f5260045ffd5b356103c581610a1f565b903590603e19813603018212156101b1570190565b6103c59036906102e3565b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019160a08202360383136101b157565b15610f8b57565b63cbd130a960e01b5f5260045ffd5b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019181360383136101b157565b6001600160401b0381116101e457601f01601f191660200190565b929192610ff382610fcc565b91611001604051938461021f565b8294818452818301116101b1578281602093845f960137010152565b5f1981019190821161102b57565b610a66565b634e487b7160e01b5f52603260045260245ffd5b91908110156110545760a0020190565b611030565b6103c5903690610bff565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b8181106111315750505060a08460406103c59596015160608401526111146060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f198285030191015261095b565b909193602060a0826111466001948951611064565b0195019291016110e0565b6020818303126101b1578051906001600160401b0382116101b1570181601f820112156101b15780519061118482610fcc565b92611192604051948561021f565b828452602083830101116101b157815f9260208093018386015e8301015290565b519081151582036101b157565b519061024f82610bf4565b519061024f82610a1f565b9060a0828203126101b15781516001600160401b0381116101b157820181601f820112156101b15780519061120a8261026f565b92611218604051948561021f565b828452602060608186019402830101918183116101b157602001925b82841061126e57505050509161124c602083016111b3565b91611259604082016111c0565b916080611268606084016111cb565b92015190565b6060848303126101b157602060609160405161128981610204565b86518152828701518382015260408701516040820152815201930192611234565b908160209103126101b1576103c5906111b3565b93909261016095926112d5866103c59a9996611064565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610d93565b60405190600154808352826020810160015f5260205f20925f5b81811061134357505061024f9250038361021f565b845483526001948501948794506020909301920161132e565b80518210156110545760209160051b010190565b1561137757565b635c974e3d60e11b5f5260045ffd5b1561138d57565b63b29d78b760e01b5f5260045ffd5b156113a357565b63d88409d360e01b5f5260045ffd5b8051515f929181151580611444575b1561143557905f915b8183106113e25750505061024f61271083111561139c565b90919360019061142a86602085016114066113fe83835161135c565b511515611370565b611424670de0b6b3a764000061141d84895161135c565b5111611386565b5161135c565b5101940191906113ca565b631fec674760e31b5f5260045ffd5b5060208101515182146113c1565b6040519061145f82610204565b5f6040838281528260208201520152565b1561147757565b6342301c2360e01b5f5260045ffd5b61148e611452565b50602081015190604081015160018060a01b0360608301511693604051936114b585610204565b845260208401918252604084019485526114ef6114e16114d3611452565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561167b57509160206115749994926115ab61156061154a8b6115c69a9861135c565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b6122fe565b8215611660576401000276a4905b61159461158d610260565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b83528560048401612315565b03815f8a5af19485156101ac575f9561162d575b50600190858a1561161e57828060801b03165b991561160f57602001516001600160a01b03165b960195919397909297611520565b516001600160a01b0316611601565b60801d828060801b03166115ed565b60019195506116529060203d8111611659575b61164a818361021f565b81019061203c565b94906115da565b503d611640565b73fffd8963efd1fc6a506488495d951d5263988d2590611582565b6001600160801b0390921689525092955061024f94509092506116a8906001600160a01b03166020870152565b60408501528351608091909101516001600160801b039091161015611470565b9190915f60806040516116da816101e9565b828152826020820152826040820152826060820152015280515f19810190811161102b576117079161135c565b51805190926001600160a01b039081169116811491565b60a061174b91207f000000000000000000000000000000000000000000000000000000000000000061204b565b50509091565b60405190608082018281106001600160401b038211176101e457604052606080838181528160208201528160408201520152565b6040519061179460208361021f565b5f80835282815b8281106117a757505050565b6020906117b2611452565b8282850101520161179b565b906117c88261026f565b6117d5604051918261021f565b82815280926117e6601f199161026f565b01905f5b8281106117f657505050565b602090611801611452565b828285010152016117ea565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b6020818303126101b1578051906001600160401b0382116101b157019080601f830112156101b157815161186a8161026f565b92611878604051948561021f565b81845260208085019260051b8201019283116101b157602001905b8282106118a05750505090565b8151815260209182019101611893565b9594939290916118c3876118dd94611064565b151560a087015261012060c0870152610120860190610928565b84810360e0860152602080835192838152019201905f5b818110611916575050506001600160a01b039091166101009390930192909252565b825160020b8452602093840193909201916001016118f4565b95919361194b939897959198611943611751565b5089886123d4565b94919496855151151580611baa575b15611b98576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b156101b1575f6040518096630b0d9c0960e01b82528183816119b58930896004850161180d565b03925af19485156101ac575f95611b7e575b5080151592838614611b775785935b611ae9575b5050855192611a0660208801519660405197889687958695633ac1fb4960e21b8752600487016118b0565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91611ac7575b50611a5681516117be565b935f5b8251811015611ac05780611a6f6001928561135c565b51611a7e82604088015161135c565b51611a8d83606089015161135c565b5190611a97610260565b92835260208301526040820152611aae828961135c565b52611ab9818861135c565b5001611a59565b5092915050565b611ae391503d805f833e611adb818361021f565b810190611837565b5f611a4b565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af19384156101ac575f94611b58575b806119db565b611b709060203d6020116108895761087b818361021f565b505f611b52565b80936119d6565b80611b8c87611b929361021f565b80610342565b5f6119c7565b50505050505090611ba7611785565b91565b506001600160801b038216151561195a565b9192916001600160a01b0316908115611d51577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af19384156101ac57611c63602094611c69935f97611d3d575b50611c5d85611c4c8186612bd7565b94611c58848383612c3f565b612bd7565b926125ed565b146125fa565b600460405180948193630476982d60e21b83525af180156101ac57611d1e575b505b6001600160801b038116611c9e57505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051630b0d9c0960e01b8152935f938593849286928492611cff9290916001600160a01b03166004850161180d565b03925af180156101ac57611d105750565b80611b8c5f61024f9361021f565b611d369060203d6020116116595761164a818361021f565b505f611c89565b80611b8c89611d4b9361021f565b5f611c3d565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af19182156101ac57602092611dff575b50600460405180948193630476982d60e21b83525af180156101ac57611de0575b50611c8b565b611df89060203d6020116116595761164a818361021f565b505f611dda565b80611b8c5f611e0d9361021f565b5f611db9565b15611e1a57565b636741e8e960e11b5f5260045ffd5b5f54811015611054575f805260205f2001905f90565b6001548110156110545760015f5260205f2001905f90565b5f54908115611ef257818151511480611ee4575b611e7490611e13565b5f5b828110611e8257505050565b80611e90600192845161135c565b51611ea7611e9d83611e29565b90549060031b1c90565b1480611ebd575b611eb790611e13565b01611e76565b50611eb7611ecf82602086015161135c565b51611edc611e9d84611e3f565b149050611eae565b506020810151518214611e6b565b5050565b15611efd57565b63bdcc3d9760e01b5f5260045ffd5b825115611f73578051611f6457505b8151156110545760209190910151805161024f926001600160a01b0390811691168114918215611f4d575b5050611ef6565b602001516001600160a01b03161490505f80611f46565b611f6e9150612610565b611f1b565b505050565b15611f81575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616611fbb5750505061024f9250808214611f78565b909291938061202657506001600160a01b031690611fd8906126fa565b91813b156101b157604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611cff565b635d0165db60e01b5f525f60045260245260445ffd5b908160209103126101b1575190565b6020906120969392604051838101918252600660408201526040815261207260608261021f565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa9182156101ac575f926120d9575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b6120f391925060203d6020116116595761164a818361021f565b905f6120b1565b6020815260806060612117845183602086015260a0850190610390565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b91909182515115612250576020838101805190926121e2916001600160a01b03168061222f575b50855160608701519094906121bf90610785906001600160a01b03169260408a01936121a7855191612195610240565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6122275751935b60405194858094819363b858183f60e01b8352600483016120fa565b03926001600160a01b03165af180156101ac576103c5915f91612208575b509251612610565b612221915060203d6020116116595761164a818361021f565b5f612200565b505f936121c6565b604087015161224a916001600160a01b038481169116612723565b5f612165565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114611f73577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b1575f9283610144926122cf946040519788968795632fc7dd6b60e11b87526004870190611064565b80821360a486015260c485015260e484015281610104840152816101248401525af180156101ac57611d105750565b600f0b60016001607f1b0319811461102b575f0390565b90916123248261014094611064565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b60020b627fffff19811461102b575f0390565b9061237a8261026f565b612387604051918261021f565b8281528092612398601f199161026f565b0190602036910137565b6001600160801b03918216908216019190821161102b57565b6001600160801b03918216908216039190821161102b57565b95939594919092946123e4611751565b965f966001600160801b038416156125d1576060830161242261241b61241361240e845160020b90565b61286d565b925160020b90565b8389612917565b9087156125b45760020b9060020b12155b6125aa5794939291908351519261244984612370565b8a5261245484612370565b60208b015261246284612370565b60408b015261247084612370565b60608b0152955f955f955b8587106124a4575050505050505080855152806020860151528060408601515260608501515290565b909192939495966124cf6124bf896020859e9c9e015161135c565b516001600160801b038d166129a6565b98891561259e576124ea906001600160801b038b16906123a2565b9a6124ff906001600160801b038b16906123bb565b98818d8a85519061250f9161135c565b5161251d908989898d612a88565b928282519061252b9161135c565b52602001519061253a9161135c565b90612547919060020b9052565b8b81898451906125569161135c565b519160400151906125669161135c565b528b81896020850151906125799161135c565b519160600151906125899161135c565b52600101966001905b0195949392919061247b565b9a985096600190612592565b5091949350505050565b6125c06125c69161235d565b60020b90565b9060020b1315612433565b505f96508695945050505050565b90601f820180921161102b57565b9190820180921161102b57565b1561260157565b637627529f60e01b5f5260045ffd5b8051156126f5575f9160179160429084905b80518261102b578661102b5783116126e0578051908582039180831161102b57869061265884612651816125df565b10156130b1565b6126668261265186826125ed565b61267c835161267586856125ed565b11156130ee565b036126955750506040515f815260208101604052612622565b60405191601f81169187831560051b80858701019484860193010101905b8084106126cd5750508252601f01601f1916604052612622565b90926020809185518152019301906126b3565b92945050506126ef9150612cd0565b50905090565b505f90565b6001600160a01b038111612714576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa9283156101ac575f93612838575b50820180921161102b5760205f604051938285019063095ea7b360e01b825260018060a01b03871660248701526044860152604485526127a760648661021f565b84519082855af15f51903d8161280c575b501590505b6127c657505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261024f92612807906128018160648101610f08565b82613172565b613172565b1515905061282c57506127bd6001600160a01b0382163b15155b5f6127b8565b60016127bd9114612826565b61285291935060203d6020116116595761164a818361021f565b915f612766565b634e487b7160e01b5f52601260045260245ffd5b8060020b801561288357620d89e8050260020b90565b612859565b60020b60010190627fffff8213627fffff1983121761102b57565b9060020b9060020b0190627fffff198212627fffff83131761102b57565b600291820b910b0390627fffff198212627fffff83131761102b57565b60020b9060020b90811561288357627fffff1981145f1983141661102b570590565b9060020b9060020b02908160020b91820361102b57565b9091901561295b575f8260020b125f1461294e576129498161294461293f826103c5966128c1565b612888565b6128de565b612900565b612949816103c5936128de565b905f8160020b125f146129765790612949816103c5936128de565b81612980916128a3565b60020b5f190190627fffff198212627fffff83131761102b57612949816103c5936128de565b808202905f198382099082808310920391808303928361271011156101b15714612a04577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca0011156101b15714612a71577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b8115612883570490565b91949392612aac612ac29294612aa7670de0b6b3a76400008211611386565b612d50565b908415612bbe575b6001600160a01b0316612a0f565b6001600160a01b038111612bb0575b612aff90606090612aea906001600160a01b0316612d96565b920191612af8835160020b90565b9084612917565b612b0d61240e835160020b90565b90612b178261235d565b8160020b8360020b81135f14612b895750505090612b40612b5292955b825160020b9085612917565b908315612b7c575160020b5b906128a3565b9015612b6c578060020b8360020b12612b685750565b9150565b8060020b8360020b13612b685750565b51612b4c9060020b61235d565b90809297935060020b13612ba6575b5090612b40612b5292612b34565b9450612b40612b98565b506001600160a01b03612ad1565b90612bd190670de0b6b3a7640000612a7e565b90612ab4565b6001600160a01b038116612bea57503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa9081156101ac575f91612c26575090565b6103c5915060203d6020116116595761164a818361021f565b9091906001600160a01b038116612c6c57505f808080612c6094865af11590565b612c675750565b613048565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612cc25750565b6001600160a01b0316612fdb565b90612cdf60148351101561312e565b602082015160601c916017815110612d1457601781015190602b81612d0b60179260209451101561312e565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b90816001810180821161102b5760011c905b838210612d7657505061024f821515611386565b9092508280156128835780820490810180911161102b5760011c90612d62565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611612fd65760018060a01b0316612dd48160201b90565b80612de7612de1836131ea565b60ff1690565b9160808310612fc95750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612f779060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f14612fa95750905090565b6001600160a01b03612fba8461326d565b1611612fc4575090565b905090565b905081607f031b90612df9565b6131ca565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b156130b857565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b156130f557565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b1561313557565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af115610a45575f513d6131c157506001600160a01b0381163b155b6131a15750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561319a565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b80156101b1577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116135875763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b18916002811661356b575b6004811661354f575b60088116613533575b60108116613517575b602081166134fb575b604081166134df575b608081166134c3575b61010081166134a7575b610200811661348b575b610400811661346f575b6108008116613453575b6110008116613437575b612000811661341b575b61400081166133ff575b61800081166133e3575b6201000081166133c7575b6202000081166133ac575b620400008116613391575b6208000016613378575b5f12613370575b0160201c90565b5f1904613369565b6b048a170391f7dc42444e8fa290910260801c90613362565b6d2216e584f5fa1ea926041bedfe9890920260801c91613358565b916e5d6af8dedb81196699c329225ee6040260801c9161334d565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91613342565b916f31be135f97d08fd981231505542fcfa60260801c91613337565b916f70d869a156d2a1b890bb3df62baf32f70260801c9161332d565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91613323565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613319565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161330f565b916ff3392b0822b70005940c7a398e4b70f30260801c91613305565b916ff987a7253ac413176f2b074cf7815e540260801c916132fb565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916132f1565b916ffe5dee046a99a2a811c461f1969c30530260801c916132e7565b916fff2ea16466c96a3843ec78b326b528610260801c916132de565b916fff973b41fa98c081472e6896dfb254c00260801c916132d5565b916fffcb9843d60f6159c9db58835c9266440260801c916132cc565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916132c3565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916132ba565b916ffff97272373d413259a46990580e213a0260801c916132b1565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2631:19208:91:-:0;;;;;;;;;;;;;-1:-1:-1;;2631:19208:91;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;7283:35;2631:19208;;7367:42;2631:19208;;7465:34;2631:19208;;7547:22;;2631:19208;;;7606:26;7642:40;;7692:24;;7726:38;;2631:19208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:40;2631:19208;;;;;;;;;;;;;;;;;;;;;;;;;7692:24;2631:19208;;;;;;;;;;7726:38;2631:19208;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;-1:-1:-1;2631:19208:91;;;;;-1:-1:-1;2631:19208:91","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100995780636baaa1671461009457806391dd73461461008f578063c31c9c071461008a578063c48677f414610085578063d737d0c714610080578063dc4c90d31461007b5763e3e8580c0361000e57610985565b6108e4565b6108b2565b610479565b610435565b6103c8565b61034c565b346101b15760203660031901126101b1576004356001600160401b0381116101b1576100c99036906004016102e3565b60405163bf7e214f60e01b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156101ac577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c9261014e915f9161017d575b506001600160a01b03163314610a50565b610157816113b2565b5061016181610afe565b602081519101519061017860405192839283610bc4565b0390a1005b61019f915060203d6020116101a5575b610197818361021f565b810190610a30565b8461013d565b503d61018d565b610a45565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176101e457604052565b6101b5565b60a081019081106001600160401b038211176101e457604052565b606081019081106001600160401b038211176101e457604052565b90601f801991011681019081106001600160401b038211176101e457604052565b6040519061024f60808361021f565b565b6040519061024f60c08361021f565b6040519061024f60608361021f565b6001600160401b0381116101e45760051b60200190565b9080601f830112156101b157813561029d8161026f565b926102ab604051948561021f565b81845260208085019260051b8201019283116101b157602001905b8282106102d35750505090565b81358152602091820191016102c6565b91906040838203126101b157604051906102fc826101c9565b819380356001600160401b0381116101b1578261031a918301610286565b83526020810135916001600160401b0383116101b15760209261033d9201610286565b910152565b5f9103126101b157565b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206103c5928181520190610390565b90565b346101b15760203660031901126101b1576004356001600160401b0381116101b157366023820112156101b1578060040135906001600160401b0382116101b15736602483830101116101b1576104319160246104259201610e1a565b604051918291826103b4565b0390f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126101b1576004356001600160401b0381116101b1578060040160e060031983360301126101b1576104b181610f25565b5f51602061359e5f395f51905f525d60248201906104cf8282610f2f565b6104d890610f44565b6104e1906113b2565b506104ec8282610f2f565b6104f590610f44565b6104fe90611e57565b60a4830161050c8183610f4f565b61051891501515610f84565b60848401926105278484610f9a565b9590604482019661053788610f25565b906105428688610f4f565b939091369061055092610fe7565b92369061055c92610c77565b9061056692611f0c565b61056f86610f25565b91606482013592343033867f0000000000000000000000000000000000000000000000000000000000000000946105a595611f96565b6105af8486610f4f565b6105b98688610f4f565b6105c3915061101d565b906105cd92611044565b6105d690611059565b967f00000000000000000000000000000000000000000000000000000000000000009360a08920610607908661204b565b505098610615915088610f9a565b9261061f90610f25565b90610628610240565b93369061063492610fe7565b83526001600160a01b031660208301526040820152306060820152610679907f000000000000000000000000000000000000000000000000000000000000000061213e565b9061068387610f25565b9561068e9088610f4f565b9460c401359361069e9089610f2f565b946106a7610251565b6001600160a01b03909816885236906106bf92610c77565b602087015260408601526001600160a01b031660608501526080840152366106e6916102e3565b60a0830152604051809260208201906106fe916110a7565b03601f1981018352610710908361021f565b6040516348c8949160e01b8152918290819061072f90600483016103b4565b6001600160a01b039093169203815a5f948591f180156101ac57610764915f91610890575b50602080825183010191016111d6565b9250909592610791610785610785610785608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa9283156101ac577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f609661082394610802925f91610861575b501580610851575b61084157610f25565b9360405195869560018060a01b031699339983600f0b9360801d92886112be565b0390a35f5f51602061359e5f395f51905f525d6040515f8152602090f35b61084c8a8a89612268565b610f25565b508960020b8960020b14156107f9565b610883915060203d602011610889575b61087b818361021f565b8101906112aa565b5f6107f1565b503d610871565b6108ac91503d805f833e6108a4818361021f565b810190611151565b5f610754565b346101b1575f3660031901126101b1576040516001600160a01b035f51602061359e5f395f51905f525c168152602090f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90602080835192838152019201905f5b8181106109455750505090565b8251845260209384019390920191600101610938565b6103c59160206109748351604084526040840190610928565b920151906020818403910152610928565b346101b1575f3660031901126101b157606060206040516109a5816101c9565b82815201526040516109b6816101c9565b604051905f5480835260208301905f805260205f20905f5b818110610a095761043185876109e68188038261021f565b81526109f0611314565b602082015260405191829160208352602083019061095b565b82548452602090930192600192830192016109ce565b6001600160a01b038116036101b157565b908160209103126101b157516103c581610a1f565b6040513d5f823e3d90fd5b15610a5757565b63d9a88cdb60e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b8151916001600160401b0383116101e457600160401b83116101e4578154838355808410610ad8575b506020610ab59101915f5260205f2090565b5f5b838110610ac45750505050565b600190602084519401938184015501610ab7565b825f528360205f2091820191015b818110610af35750610aa3565b5f8155600101610ae6565b80518051906001600160401b0382116101e457600160401b82116101e4575f54825f55808310610b81575b505f80526020017f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635f5b838110610b6d5750505050602061024f9101516001610a7a565b600190602084519401938184015501610b53565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639081019083015b818110610bb95750610b29565b5f8155600101610bac565b9091610bdb6103c593604084526040840190610928565b916020818403910152610928565b359061024f82610a1f565b8060020b036101b157565b91908260a09103126101b157604051610c17816101e9565b80928035610c2481610a1f565b82526020810135610c3481610a1f565b6020830152604081013562ffffff811681036101b157608091829160408501526060810135610c6281610bf4565b6060850152013591610c7383610a1f565b0152565b90929192610c848161026f565b93610c92604051958661021f565b60a06020868481520192028301928184116101b157915b838310610cb65750505050565b602060a091610cc58486610bff565b815201920191610ca9565b9080601f830112156101b1578160206103c593359101610c77565b6020818303126101b1578035906001600160401b0382116101b1570160c0818303126101b157610d19610251565b91610d2382610be9565b835260208201356001600160401b0381116101b15781610d44918401610cd0565b602084015260408201356040840152610d5f60608301610be9565b60608401526080820135608084015260a08201356001600160401b0381116101b157610d8b92016102e3565b60a082015290565b90602080835192838152019201905f5b818110610db05750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610da3565b919594939092610df860809460a0855260a0850190610d93565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610f1657610e5691810190610ceb565b6103c5610e6282611486565b610f08610ecc610ef66040610e8e6020880151610e88602088015160018060a01b031690565b906116c8565b9691939098610e9c8561171e565b9690958b8789610eb2885160018060801b031690565b60a0870151875190948f916001600160a01b03169661192f565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611bbc565b01519160405196879560208701610dde565b03601f19810183528261021f565b63f655705d60e01b5f5260045ffd5b356103c581610a1f565b903590603e19813603018212156101b1570190565b6103c59036906102e3565b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019160a08202360383136101b157565b15610f8b57565b63cbd130a960e01b5f5260045ffd5b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019181360383136101b157565b6001600160401b0381116101e457601f01601f191660200190565b929192610ff382610fcc565b91611001604051938461021f565b8294818452818301116101b1578281602093845f960137010152565b5f1981019190821161102b57565b610a66565b634e487b7160e01b5f52603260045260245ffd5b91908110156110545760a0020190565b611030565b6103c5903690610bff565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b8181106111315750505060a08460406103c59596015160608401526111146060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f198285030191015261095b565b909193602060a0826111466001948951611064565b0195019291016110e0565b6020818303126101b1578051906001600160401b0382116101b1570181601f820112156101b15780519061118482610fcc565b92611192604051948561021f565b828452602083830101116101b157815f9260208093018386015e8301015290565b519081151582036101b157565b519061024f82610bf4565b519061024f82610a1f565b9060a0828203126101b15781516001600160401b0381116101b157820181601f820112156101b15780519061120a8261026f565b92611218604051948561021f565b828452602060608186019402830101918183116101b157602001925b82841061126e57505050509161124c602083016111b3565b91611259604082016111c0565b916080611268606084016111cb565b92015190565b6060848303126101b157602060609160405161128981610204565b86518152828701518382015260408701516040820152815201930192611234565b908160209103126101b1576103c5906111b3565b93909261016095926112d5866103c59a9996611064565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610d93565b60405190600154808352826020810160015f5260205f20925f5b81811061134357505061024f9250038361021f565b845483526001948501948794506020909301920161132e565b80518210156110545760209160051b010190565b1561137757565b635c974e3d60e11b5f5260045ffd5b1561138d57565b63b29d78b760e01b5f5260045ffd5b156113a357565b63d88409d360e01b5f5260045ffd5b8051515f929181151580611444575b1561143557905f915b8183106113e25750505061024f61271083111561139c565b90919360019061142a86602085016114066113fe83835161135c565b511515611370565b611424670de0b6b3a764000061141d84895161135c565b5111611386565b5161135c565b5101940191906113ca565b631fec674760e31b5f5260045ffd5b5060208101515182146113c1565b6040519061145f82610204565b5f6040838281528260208201520152565b1561147757565b6342301c2360e01b5f5260045ffd5b61148e611452565b50602081015190604081015160018060a01b0360608301511693604051936114b585610204565b845260208401918252604084019485526114ef6114e16114d3611452565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561167b57509160206115749994926115ab61156061154a8b6115c69a9861135c565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b6122fe565b8215611660576401000276a4905b61159461158d610260565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b83528560048401612315565b03815f8a5af19485156101ac575f9561162d575b50600190858a1561161e57828060801b03165b991561160f57602001516001600160a01b03165b960195919397909297611520565b516001600160a01b0316611601565b60801d828060801b03166115ed565b60019195506116529060203d8111611659575b61164a818361021f565b81019061203c565b94906115da565b503d611640565b73fffd8963efd1fc6a506488495d951d5263988d2590611582565b6001600160801b0390921689525092955061024f94509092506116a8906001600160a01b03166020870152565b60408501528351608091909101516001600160801b039091161015611470565b9190915f60806040516116da816101e9565b828152826020820152826040820152826060820152015280515f19810190811161102b576117079161135c565b51805190926001600160a01b039081169116811491565b60a061174b91207f000000000000000000000000000000000000000000000000000000000000000061204b565b50509091565b60405190608082018281106001600160401b038211176101e457604052606080838181528160208201528160408201520152565b6040519061179460208361021f565b5f80835282815b8281106117a757505050565b6020906117b2611452565b8282850101520161179b565b906117c88261026f565b6117d5604051918261021f565b82815280926117e6601f199161026f565b01905f5b8281106117f657505050565b602090611801611452565b828285010152016117ea565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b6020818303126101b1578051906001600160401b0382116101b157019080601f830112156101b157815161186a8161026f565b92611878604051948561021f565b81845260208085019260051b8201019283116101b157602001905b8282106118a05750505090565b8151815260209182019101611893565b9594939290916118c3876118dd94611064565b151560a087015261012060c0870152610120860190610928565b84810360e0860152602080835192838152019201905f5b818110611916575050506001600160a01b039091166101009390930192909252565b825160020b8452602093840193909201916001016118f4565b95919361194b939897959198611943611751565b5089886123d4565b94919496855151151580611baa575b15611b98576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b156101b1575f6040518096630b0d9c0960e01b82528183816119b58930896004850161180d565b03925af19485156101ac575f95611b7e575b5080151592838614611b775785935b611ae9575b5050855192611a0660208801519660405197889687958695633ac1fb4960e21b8752600487016118b0565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91611ac7575b50611a5681516117be565b935f5b8251811015611ac05780611a6f6001928561135c565b51611a7e82604088015161135c565b51611a8d83606089015161135c565b5190611a97610260565b92835260208301526040820152611aae828961135c565b52611ab9818861135c565b5001611a59565b5092915050565b611ae391503d805f833e611adb818361021f565b810190611837565b5f611a4b565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af19384156101ac575f94611b58575b806119db565b611b709060203d6020116108895761087b818361021f565b505f611b52565b80936119d6565b80611b8c87611b929361021f565b80610342565b5f6119c7565b50505050505090611ba7611785565b91565b506001600160801b038216151561195a565b9192916001600160a01b0316908115611d51577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af19384156101ac57611c63602094611c69935f97611d3d575b50611c5d85611c4c8186612bd7565b94611c58848383612c3f565b612bd7565b926125ed565b146125fa565b600460405180948193630476982d60e21b83525af180156101ac57611d1e575b505b6001600160801b038116611c9e57505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051630b0d9c0960e01b8152935f938593849286928492611cff9290916001600160a01b03166004850161180d565b03925af180156101ac57611d105750565b80611b8c5f61024f9361021f565b611d369060203d6020116116595761164a818361021f565b505f611c89565b80611b8c89611d4b9361021f565b5f611c3d565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af19182156101ac57602092611dff575b50600460405180948193630476982d60e21b83525af180156101ac57611de0575b50611c8b565b611df89060203d6020116116595761164a818361021f565b505f611dda565b80611b8c5f611e0d9361021f565b5f611db9565b15611e1a57565b636741e8e960e11b5f5260045ffd5b5f54811015611054575f805260205f2001905f90565b6001548110156110545760015f5260205f2001905f90565b5f54908115611ef257818151511480611ee4575b611e7490611e13565b5f5b828110611e8257505050565b80611e90600192845161135c565b51611ea7611e9d83611e29565b90549060031b1c90565b1480611ebd575b611eb790611e13565b01611e76565b50611eb7611ecf82602086015161135c565b51611edc611e9d84611e3f565b149050611eae565b506020810151518214611e6b565b5050565b15611efd57565b63bdcc3d9760e01b5f5260045ffd5b825115611f73578051611f6457505b8151156110545760209190910151805161024f926001600160a01b0390811691168114918215611f4d575b5050611ef6565b602001516001600160a01b03161490505f80611f46565b611f6e9150612610565b611f1b565b505050565b15611f81575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616611fbb5750505061024f9250808214611f78565b909291938061202657506001600160a01b031690611fd8906126fa565b91813b156101b157604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611cff565b635d0165db60e01b5f525f60045260245260445ffd5b908160209103126101b1575190565b6020906120969392604051838101918252600660408201526040815261207260608261021f565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa9182156101ac575f926120d9575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b6120f391925060203d6020116116595761164a818361021f565b905f6120b1565b6020815260806060612117845183602086015260a0850190610390565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b91909182515115612250576020838101805190926121e2916001600160a01b03168061222f575b50855160608701519094906121bf90610785906001600160a01b03169260408a01936121a7855191612195610240565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6122275751935b60405194858094819363b858183f60e01b8352600483016120fa565b03926001600160a01b03165af180156101ac576103c5915f91612208575b509251612610565b612221915060203d6020116116595761164a818361021f565b5f612200565b505f936121c6565b604087015161224a916001600160a01b038481169116612723565b5f612165565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114611f73577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b1575f9283610144926122cf946040519788968795632fc7dd6b60e11b87526004870190611064565b80821360a486015260c485015260e484015281610104840152816101248401525af180156101ac57611d105750565b600f0b60016001607f1b0319811461102b575f0390565b90916123248261014094611064565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b60020b627fffff19811461102b575f0390565b9061237a8261026f565b612387604051918261021f565b8281528092612398601f199161026f565b0190602036910137565b6001600160801b03918216908216019190821161102b57565b6001600160801b03918216908216039190821161102b57565b95939594919092946123e4611751565b965f966001600160801b038416156125d1576060830161242261241b61241361240e845160020b90565b61286d565b925160020b90565b8389612917565b9087156125b45760020b9060020b12155b6125aa5794939291908351519261244984612370565b8a5261245484612370565b60208b015261246284612370565b60408b015261247084612370565b60608b0152955f955f955b8587106124a4575050505050505080855152806020860151528060408601515260608501515290565b909192939495966124cf6124bf896020859e9c9e015161135c565b516001600160801b038d166129a6565b98891561259e576124ea906001600160801b038b16906123a2565b9a6124ff906001600160801b038b16906123bb565b98818d8a85519061250f9161135c565b5161251d908989898d612a88565b928282519061252b9161135c565b52602001519061253a9161135c565b90612547919060020b9052565b8b81898451906125569161135c565b519160400151906125669161135c565b528b81896020850151906125799161135c565b519160600151906125899161135c565b52600101966001905b0195949392919061247b565b9a985096600190612592565b5091949350505050565b6125c06125c69161235d565b60020b90565b9060020b1315612433565b505f96508695945050505050565b90601f820180921161102b57565b9190820180921161102b57565b1561260157565b637627529f60e01b5f5260045ffd5b8051156126f5575f9160179160429084905b80518261102b578661102b5783116126e0578051908582039180831161102b57869061265884612651816125df565b10156130b1565b6126668261265186826125ed565b61267c835161267586856125ed565b11156130ee565b036126955750506040515f815260208101604052612622565b60405191601f81169187831560051b80858701019484860193010101905b8084106126cd5750508252601f01601f1916604052612622565b90926020809185518152019301906126b3565b92945050506126ef9150612cd0565b50905090565b505f90565b6001600160a01b038111612714576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa9283156101ac575f93612838575b50820180921161102b5760205f604051938285019063095ea7b360e01b825260018060a01b03871660248701526044860152604485526127a760648661021f565b84519082855af15f51903d8161280c575b501590505b6127c657505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261024f92612807906128018160648101610f08565b82613172565b613172565b1515905061282c57506127bd6001600160a01b0382163b15155b5f6127b8565b60016127bd9114612826565b61285291935060203d6020116116595761164a818361021f565b915f612766565b634e487b7160e01b5f52601260045260245ffd5b8060020b801561288357620d89e8050260020b90565b612859565b60020b60010190627fffff8213627fffff1983121761102b57565b9060020b9060020b0190627fffff198212627fffff83131761102b57565b600291820b910b0390627fffff198212627fffff83131761102b57565b60020b9060020b90811561288357627fffff1981145f1983141661102b570590565b9060020b9060020b02908160020b91820361102b57565b9091901561295b575f8260020b125f1461294e576129498161294461293f826103c5966128c1565b612888565b6128de565b612900565b612949816103c5936128de565b905f8160020b125f146129765790612949816103c5936128de565b81612980916128a3565b60020b5f190190627fffff198212627fffff83131761102b57612949816103c5936128de565b808202905f198382099082808310920391808303928361271011156101b15714612a04577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca0011156101b15714612a71577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b8115612883570490565b91949392612aac612ac29294612aa7670de0b6b3a76400008211611386565b612d50565b908415612bbe575b6001600160a01b0316612a0f565b6001600160a01b038111612bb0575b612aff90606090612aea906001600160a01b0316612d96565b920191612af8835160020b90565b9084612917565b612b0d61240e835160020b90565b90612b178261235d565b8160020b8360020b81135f14612b895750505090612b40612b5292955b825160020b9085612917565b908315612b7c575160020b5b906128a3565b9015612b6c578060020b8360020b12612b685750565b9150565b8060020b8360020b13612b685750565b51612b4c9060020b61235d565b90809297935060020b13612ba6575b5090612b40612b5292612b34565b9450612b40612b98565b506001600160a01b03612ad1565b90612bd190670de0b6b3a7640000612a7e565b90612ab4565b6001600160a01b038116612bea57503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa9081156101ac575f91612c26575090565b6103c5915060203d6020116116595761164a818361021f565b9091906001600160a01b038116612c6c57505f808080612c6094865af11590565b612c675750565b613048565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612cc25750565b6001600160a01b0316612fdb565b90612cdf60148351101561312e565b602082015160601c916017815110612d1457601781015190602b81612d0b60179260209451101561312e565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b90816001810180821161102b5760011c905b838210612d7657505061024f821515611386565b9092508280156128835780820490810180911161102b5760011c90612d62565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611612fd65760018060a01b0316612dd48160201b90565b80612de7612de1836131ea565b60ff1690565b9160808310612fc95750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612f779060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f14612fa95750905090565b6001600160a01b03612fba8461326d565b1611612fc4575090565b905090565b905081607f031b90612df9565b6131ca565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b156130b857565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b156130f557565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b1561313557565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af115610a45575f513d6131c157506001600160a01b0381163b155b6131a15750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561319a565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b80156101b1577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116135875763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b18916002811661356b575b6004811661354f575b60088116613533575b60108116613517575b602081166134fb575b604081166134df575b608081166134c3575b61010081166134a7575b610200811661348b575b610400811661346f575b6108008116613453575b6110008116613437575b612000811661341b575b61400081166133ff575b61800081166133e3575b6201000081166133c7575b6202000081166133ac575b620400008116613391575b6208000016613378575b5f12613370575b0160201c90565b5f1904613369565b6b048a170391f7dc42444e8fa290910260801c90613362565b6d2216e584f5fa1ea926041bedfe9890920260801c91613358565b916e5d6af8dedb81196699c329225ee6040260801c9161334d565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91613342565b916f31be135f97d08fd981231505542fcfa60260801c91613337565b916f70d869a156d2a1b890bb3df62baf32f70260801c9161332d565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91613323565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613319565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161330f565b916ff3392b0822b70005940c7a398e4b70f30260801c91613305565b916ff987a7253ac413176f2b074cf7815e540260801c916132fb565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916132f1565b916ffe5dee046a99a2a811c461f1969c30530260801c916132e7565b916fff2ea16466c96a3843ec78b326b528610260801c916132de565b916fff973b41fa98c081472e6896dfb254c00260801c916132d5565b916fffcb9843d60f6159c9db58835c9266440260801c916132cc565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916132c3565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916132ba565b916ffff97272373d413259a46990580e213a0260801c916132b1565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2631:19208:91:-:0;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;2631:19208:91;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;8275:60:91;;2631:19208;;;;;8303:18;-1:-1:-1;;;;;2631:19208:91;8275:60;;;;;;;8446:61;8275:60;8253:100;8275:60;2631:19208;8275:60;;;2631:19208;-1:-1:-1;;;;;;2631:19208:91;8261:10;:74;8253:100;:::i;:::-;8363:32;;;:::i;:::-;;2631:19208;;;:::i;:::-;;8470:16;;8488:18;;;2631:19208;8446:61;2631:19208;;8446:61;;;;;:::i;:::-;;;;2631:19208;8275:60;;;;2631:19208;8275:60;2631:19208;8275:60;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;2631:19208::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;:::o;:::-;3514:38;2631:19208;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;:::o;:::-;;;;;9739:14;2631:19208;;:::i;:::-;:::o;:::-;;;;;11018:19;2631:19208;;:::i;:::-;;;;;14632:29;2631:19208;;:::i;:::-;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2631:19208:91;;;;;;3002:55;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;;;-1:-1:-1;;2631:19208:91;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;2631:19208:91;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;2631:19208:91;;;;;;3107:39;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;-1:-1:-1;;2631:19208:91;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;9270:16;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3080:68:7;9408:23:91;;;;;;;;:::i;:::-;9383:49;;;:::i;:::-;;;;:::i;:::-;;9525:23;;;;:::i;:::-;9495:54;;;:::i;:::-;;;;:::i;:::-;9630:14;;;;;;;:::i;:::-;9622:50;;-1:-1:-1;9630:25:91;;9622:50;:::i;:::-;9739:14;;;;;;;;:::i;:::-;9755:20;;;;;;;;;:::i;:::-;9777:14;;;;;:::i;:::-;2631:19208;;;;3514:38;;;;:::i;:::-;2631:19208;;3514:38;;;;:::i;:::-;9710:82;;;;:::i;:::-;9924:20;;;:::i;:::-;9946:18;;;;2631:19208;9993:9;;9986:4;9966:10;9915:7;;9993:9;;;;:::i;:::-;10095:14;;;;:::i;:::-;10110;;;;:::i;:::-;:25;;;;:::i;:::-;10095:41;;;;:::i;:::-;10067:69;;;:::i;:::-;10232:11;;357:173:36;9630:14:91;357:173:36;;10210:53:91;;;;:::i;:::-;10509:14;;;;;;;;:::i;:::-;10556:20;;;;:::i;:::-;3514:38;;;:::i;:::-;2631:19208;;3514:38;;;;:::i;:::-;;;-1:-1:-1;;;;;2631:19208:91;;10455:227;;3514:38;9755:20;10455:227;;3514:38;9986:4;9946:18;10455:227;;3514:38;10390:302;;10431:10;10390:302;:::i;:::-;10845:16;;;;:::i;:::-;10884:14;;;;;:::i;:::-;11018:19;;;2631:19208;11069:23;;;;;:::i;:::-;3514:38;;;:::i;:::-;-1:-1:-1;;;;;2631:19208:91;;;3514:38;;2631:19208;3514:38;;;;:::i;:::-;2631:19208;10807:296;;3514:38;9755:20;10807:296;;3514:38;-1:-1:-1;;;;;2631:19208:91;9946:18;10807:296;;3514:38;9739:14;10807:296;;3514:38;2631:19208;3514:38;;;:::i;:::-;9630:14;10807:296;;3514:38;9755:20;2631:19208;11219:24;;2631:19208;11219:24;;;;;;:::i;:::-;;2631:19208;;11219:24;;;;;;;;:::i;:::-;9755:20;2631:19208;-1:-1:-1;;;11200:44:91;;2631:19208;;;;;11200:44;;2631:19208;11200:44;;;:::i;:::-;-1:-1:-1;;;;;2631:19208:91;;;;11200:44;;;-1:-1:-1;11200:44:91;;;;;;;;11383:106;11200:44;-1:-1:-1;11200:44:91;;;2631:19208;;;;;;11383:106;;;;;;:::i;:::-;11607:16;;;;;11591:52;:34;11599:25;3514:38;9739:14;11607:16;;3514:38;2631:19208;;;;;;;;3514:38;-1:-1:-1;;;;;2631:19208:91;;;11591:52;9755:20;2631:19208;-1:-1:-1;;;11591:95:91;;-1:-1:-1;;;2631:19208:91;11591:95;;3514:38;2631:19208;;;;;;3514:38;;2631:19208;;11591:95;;;;;;;11915:294;11591:95;11915:294;11591:95;11980:16;11591:95;-1:-1:-1;11591:95:91;;;2631:19208;11750:17;;:52;;;2631:19208;11746:154;;11980:16;:::i;:::-;2631:19208;9755:20;2631:19208;;;;;;;;;;9966:10;;2241:89:33;;;;2052:83;9739:14:91;2052:83:33;11915:294:91;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;;3080:68:7;9755:20:91;2631:19208;9270:16;2631:19208;;;;;11746:154;;;;;;:::i;:::-;11980:16;:::i;11750:52::-;2631:19208;;;;;;;11771:31;;11750:52;;11591:95;;;;2631:19208;11591:95;2631:19208;11591:95;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;11200:44;;;;;;-1:-1:-1;11200:44:91;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2631:19208;;;;;;-1:-1:-1;;2631:19208:91;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;2848:69:7;2631:19208:91;;;;;;;;;;;;-1:-1:-1;;2631:19208:91;;;;;;2908:41;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2631:19208:91;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3514:38;;2631:19208;;:::i;:::-;;;;3514:38;2631:19208;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;-1:-1:-1;2631:19208:91;;;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;:::o;12621:1377::-;12734:11;-1:-1:-1;;;;;2631:19208:91;12712:10;:34;12708:89;;12842:32;;;;;;:::i;:::-;13894:97;12969:29;;;:::i;:::-;13894:97;13418:273;13853:22;13798:27;13123:67;13142:20;;;;2631:19208;13142:20;13164:25;;2631:19208;;;;;;;;;;13123:67;;:::i;:::-;13290:25;;;;;;;;:::i;:::-;2631:19208;;;;;;;;;;;;;;;;;;13616:29;;;;2631:19208;;13616:29;;;;-1:-1:-1;;;;;2631:19208:91;13418:273;;:::i;:::-;13767:29;;;2631:19208;13767:29;;;;-1:-1:-1;;;;;2631:19208:91;13798:27;;;2631:19208;;;13798:27;;2631:19208;-1:-1:-1;;;;;2631:19208:91;13853:22;;:::i;:::-;13964:26;2631:19208;;13798:27;2631:19208;13894:97;;;13142:20;13894:97;;;:::i;:::-;;2631:19208;;13894:97;;;;;;:::i;12708:89::-;12769:17;;;;;;;;3514:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3514:38:91;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3514:38:91;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3514:38:91;;;;2631:19208;;-1:-1:-1;;2631:19208:91;3514:38;;;:::o;:::-;;;;;;;:::i;:::-;2631:19208;;;;;;;:::i;:::-;3514:38;;;;;;;;;;;;;;;;-1:-1:-1;3514:38:91;;;;;;:::o;:::-;-1:-1:-1;;3514:38:91;;;;;;;;:::o;:::-;;:::i;:::-;2631:19208;;;3514:38;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2631:19208:91;;;;;3514:38;;;;;2631:19208;;3514:38;;;2631:19208;3514:38;;;;;2631:19208;;3514:38;;;;;;;;;2631:19208;;3514:38;;;2631:19208;3514:38;;;;;2631:19208;3514:38;;2631:19208;3514:38::o;:::-;;;;;;;-1:-1:-1;;;;;2631:19208:91;3514:38;;;2631:19208;3514:38;;;;;;;;;2631:19208;;3514:38;;;2631:19208;;;3514:38;;;2631:19208;;;;3514:38;2631:19208;;;;;-1:-1:-1;3514:38:91;;;;;;;;;;;;;;;;;;;;2631:19208;3514:38;;;;;;;;;2631:19208;;;;;;;;;3514:38;;;;;;;;2631:19208;3514:38;;2631:19208;3514:38;2631:19208;;3514:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;2631:19208;;3514:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3514:38:91;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:19208;;;;;;;:::i;:::-;3514:38;;;;;;;;;;;;-1:-1:-1;3514:38:91;;;;;;;;2631:19208;;;;;3514:38;:::o;:::-;;2631:19208;;;;3514:38;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3514:38:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:19208;;;;;;;:::i;:::-;3514:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2631:19208;3514:38;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;2631:19208;;;;;;:::i;:::-;3514:38;;;;;;;;;;;;2631:19208;3514:38;;;2631:19208;3514:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2631:19208;;;;3514:38;;;2631:19208;;3514:38;;;2631:19208;3514:38;;;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;3514:38;;;2631:19208;3514:38;;;;;;;;;:::i;2631:19208::-;;;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;-1:-1:-1;2631:19208:91;;-1:-1:-1;2631:19208:91;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;1795:4:90;;;;:::o;:::-;;;;;;;;;1901:6;;;;:::o;:::-;;;;;;;;;2728:647;2850:16;;2631:19208:91;;;2728:647:90;2892:10;;;;:49;;2728:647;2631:19208:91;;;3000:9:90;2631:19208:91;2995:296:90;3011:10;;;;;;3319:29;;;3311:57;1901:6;3319:29;;;3311:57;:::i;3023:3::-;3054:18;;;2631:19208:91;3054:18:90;3215:21;3054:18;;;;3046:53;3054:21;:18;;;:21;:::i;:::-;2631:19208:91;3054:26:90;;3046:53;:::i;:::-;3117:64;1795:4;3125:19;:16;;;:19;:::i;:::-;2631:19208:91;3125:36:90;3117:64;:::i;:::-;3215:18;:21;:::i;:::-;2631:19208:91;1795:4:90;3023:3;2631:19208:91;3000:9:90;;;;2631:19208:91;;;;;;;;;2892:49:90;2916:18;;;;;2631:19208:91;2906:35:90;;2892:49;;2631:19208:91;;;;;;;:::i;:::-;-1:-1:-1;2631:19208:91;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;14233:603;2631:19208;;:::i;:::-;;14507:20;;;;14555:27;;;;2631:19208;;;;;;14632:29;;;2631:19208;;;14555:27;2631:19208;;;;;:::i;:::-;3514:38;;14507:20;14453:224;;3514:38;;;14555:27;14453:224;;3514:38;;;8176:24:59;2631:19208:91;;;:::i;:::-;;;-1:-1:-1;;;;;2631:19208:91;;;;;;-1:-1:-1;;;;;2631:19208:91;;;8176:24:59;-1:-1:-1;;14428:11:91;-1:-1:-1;;;;;2631:19208:91;;8210:22:59;;-1:-1:-1;8333:3:59;8310:14;;2631:19208:91;;;8306:25:59;;;;;8377:17;;14507:20:91;8638:24:59;8377:17;;;8615:120;8493:36;8377:17;;8556:213;8377:17;;;:::i;:::-;;2631:19208:91;;8377:17:59;;-1:-1:-1;;;;;2631:19208:91;;;;;448:51:35;;364:138;8493:36:59;2631:19208:91;;;-1:-1:-1;;;;;2631:19208:91;3514:38;;8638:24:59;:::i;:::-;8664:70;;;;1862:10:31;8664:70:59;;8615:120;2631:19208:91;;:::i;:::-;;;;1862:10:31;;;8615:120:59;3514:38:91;;8615:120:59;;;3514:38:91;-1:-1:-1;;;;;2631:19208:91;14555:27;8615:120:59;;3514:38:91;;8615:120:59;14555:27:91;2631:19208;;;;;;;;8556:213:59;;;;;;;:::i;:::-;;;-1:-1:-1;8556:213:59;;;;;;;;-1:-1:-1;8556:213:59;;;8664:70;-1:-1:-1;2631:19208:91;;8544:225:59;8855:72;;;;2631:19208:91;;;;;;8855:72:59;9043:50;;;;14507:20:91;9056:17:59;2631:19208:91;-1:-1:-1;;;;;2631:19208:91;;8333:3:59;2631:19208:91;8291:13:59;;;;;;;;;9043:50;2631:19208:91;-1:-1:-1;;;;;2631:19208:91;9043:50:59;;8855:72;2052:83:33;;2631:19208:91;;;;;;8855:72:59;;8556:213;2631:19208:91;8556:213:59;;;;;14507:20:91;8556:213:59;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8664:70;2042:49:31;8664:70:59;;;8306:25;-1:-1:-1;;;;;2631:19208:91;;;1862:10:31;;-1:-1:-1;8306:25:59;;-1:-1:-1;14740:89:91;;-1:-1:-1;8306:25:59;;-1:-1:-1;9159:39:59;;-1:-1:-1;;;;;2631:19208:91;14507:20;9159:21:59;;3514:38:91;;9159:39:59;14555:27:91;9208:22:59;;3514:38:91;2631:19208;;14775:25;;;;;2631:19208;-1:-1:-1;;;;;2631:19208:91;;;14748:52;;14740:89;:::i;15189:437::-;;;;-1:-1:-1;2631:19208:91;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3514:38;;;;;;;;;15460:24;;;:::i;:::-;;2631:19208;;15460:24;;-1:-1:-1;;;;;2631:19208:91;;;;;15567:52;;;15189:437::o;15820:204::-;357:173:36;15964:53:91;15820:204;357:173:36;15986:11:91;15964:53;:::i;:::-;15937:80;;;15820:204;:::o;2631:19208::-;;;;3514:38;2631:19208;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2631:19208:91;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;3514:38;;2631:19208;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2631:19208:91;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;16738:1841;;;;17234:115;16738:1841;;;;;;2631:19208;;:::i;:::-;;17234:115;;;:::i;:::-;17199:150;;;17416:12;;;2631:19208;17416:23;;:40;;;16738:1841;17412:1161;;;-1:-1:-1;;;;;17543:11:91;2631:19208;;;;17543:70;;;;;2631:19208;;;;;;;;17543:70;;17596:4;;;17543:70;17596:4;;17543:70;;;;;:::i;:::-;;;;;;;;;;2631:19208;17543:70;;;17412:1161;17720:25;;;;:41;;;;;;;;;17844:131;;17720:41;18135:12;;;;18149;18066:103;18149:12;;;;2631:19208;;;;;;;;;;;;;18066:103;;17543:70;18066:103;;;:::i;:::-;;;-1:-1:-1;;;;;2631:19208:91;18066:18;-1:-1:-1;;;;;2631:19208:91;18066:103;;;;;;;2631:19208;18066:103;;;17720:41;2631:19208;18200:35;2631:19208;;18200:35;:::i;:::-;18282:9;2631:19208;18314:3;2631:19208;;18293:19;;;;;18383:11;;2631:19208;18383:11;;;:::i;:::-;2631:19208;18406:19;:16;2631:19208;18406:16;;;:19;:::i;:::-;2631:19208;18439:21;:18;2631:19208;18439:18;;;:21;:::i;:::-;2631:19208;;;;:::i;:::-;3514:38;;;18149:12;18360:102;;3514:38;2631:19208;18360:102;;3514:38;18341:121;;;;:::i;:::-;;;;;;:::i;:::-;;2631:19208;18282:9;;18293:19;;;;;;16738:1841::o;18066:103::-;;;;;;2631:19208;18066:103;;;;;;:::i;:::-;;;;;:::i;:::-;;;;17844:131;2631:19208;;-1:-1:-1;;;17893:67:91;;-1:-1:-1;;;;;17929:18:91;2631:19208;17543:70;17893:67;;2631:19208;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;17893:67;;2631:19208;;;;;;;17893:67;;;;;;;2631:19208;17893:67;;;17844:131;;;;17893:67;;;;;;;;;;;;;:::i;:::-;;;;;17720:41;;;;;17543:70;;;;;;;:::i;:::-;;;:::i;:::-;;;;17412:1161;18541:21;;;;;;;;;:::i;:::-;17412:1161;16738:1841::o;17416:40::-;-1:-1:-1;;;;;;2631:19208:91;;17443:13;;17416:40;;18925:431;;;;-1:-1:-1;;;;;2631:19208:91;;4998:58:35;;19585:24:91;;19625:11;-1:-1:-1;;;;;2631:19208:91;19625:26;;;;;2631:19208;;-1:-1:-1;;;19625:26:91;;-1:-1:-1;;;;;2631:19208:91;;19625:26;;;2631:19208;-1:-1:-1;2631:19208:91;;;-1:-1:-1;19625:26:91;;;;;;;;19900:22;19987:20;19625:26;19848:124;19625:26;;;;;19580:593;19733:40;19856;19733;;;;;:::i;:::-;19827:6;;;;;;:::i;:::-;19856:40;:::i;:::-;19900:22;;:::i;:::-;19856:66;19848:124;:::i;:::-;19625:26;2631:19208;;;;;;;;;19987:20;;;;;;;;;;19580:593;;;-1:-1:-1;;;;;2631:19208:91;;19240:110;;18925:431;;;:::o;19240:110::-;19275:11;-1:-1:-1;;;;;2631:19208:91;19275:64;;;;;2631:19208;;-1:-1:-1;;;19275:64:91;;2631:19208;19258:1;;2631:19208;;;;19258:1;;2631:19208;;19275:64;;2631:19208;;-1:-1:-1;;;;;2631:19208:91;19275:64;;;;:::i;:::-;;;;;;;;;;;18925:431;:::o;19275:64::-;;;19258:1;19275:64;;;:::i;19987:20::-;;;;;;;;;;;;;:::i;:::-;;;;;19625:26;;;;;;;:::i;:::-;;;;19580:593;2631:19208;20087:11;-1:-1:-1;;;;;2631:19208:91;20087:26;;;;;2631:19208;;-1:-1:-1;;;20087:26:91;;-1:-1:-1;;;;;2631:19208:91;;;;20087:26;;;2631:19208;-1:-1:-1;2631:19208:91;;;-1:-1:-1;20087:26:91;;;;;;;;20127:35;20087:26;;;19580:593;2631:19208;20087:26;2631:19208;;;;;;;;;20127:35;;;;;;;;;;19580:593;;;;20127:35;;;;;;;;;;;;;:::i;:::-;;;;;20087:26;;;;;;;:::i;:::-;;;;2631:19208;;;;:::o;:::-;;;;;;;;;;21059:17;2631:19208;;;;;;21059:17;2631:19208;;;21059:17;2631:19208;;;21059:17;2631:19208;:::o;:::-;;;;;;;;;-1:-1:-1;2631:19208:91;;-1:-1:-1;2631:19208:91;;;-1:-1:-1;2631:19208:91;:::o;20938:817::-;21059:17;2631:19208;21173:20;;;21169:33;;21257:16;;;2631:19208;21257:42;:90;;;20938:817;21249:126;;;:::i;:::-;21059:17;21472:19;;;;;;20938:817;;;:::o;21493:3::-;21545:16;:19;2631:19208;21545:16;;;:19;:::i;:::-;2631:19208;;21568:30;;;:::i;:::-;2631:19208;;;;;;;;;21545:53;:114;;;21493:3;21516:208;;;:::i;:::-;2631:19208;21461:9;;21545:114;21602:18;21516:208;21602:21;:18;;;;;:21;:::i;:::-;2631:19208;;21627:32;;;:::i;2631:19208::-;21602:57;21545:114;;;;21257:90;-1:-1:-1;21303:18:91;;;;2631:19208;21303:44;;21257:90;;21169:33;21195:7;;:::o;2631:19208::-;;;;:::o;:::-;;;;;;;;;2969:890:59;2631:19208:91;;3092:19:59;3088:83;;2631:19208:91;;3289:14:59;;3404:31;3285:313;2631:19208:91;;;;;;;;;;3635:10:59;2631:19208:91;;3656:196:59;;-1:-1:-1;;;;;2631:19208:91;;;;;3677:55:59;;;:114;;;;3285:313;3656:196;;;:::i;3677:114::-;2631:19208:91;3771:19:59;2631:19208:91;-1:-1:-1;;;;;2631:19208:91;3736:55:59;;-1:-1:-1;3677:114:59;;;;3285:313;3554:33;;;;:::i;:::-;3285:313;;3088:83;3127:7;;;:::o;2631:19208:91:-;;;;;;:::o;:::-;;;;;;;;;;;;;5439:575:59;;;;;;;;-1:-1:-1;;;;;2631:19208:91;;;;5705:23:59;;;5697:82;5705:23;;;;;5697:82;:::i;5603:405::-;5859:13;;;;;2631:19208:91;;-1:-1:-1;;;;;;2631:19208:91;;5958:23:59;;;:::i;:::-;5927:70;;;;;;2631:19208:91;;-1:-1:-1;;;5927:70:59;;-1:-1:-1;;;;;2631:19208:91;;;5927:70:59;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;5632:1:59;;2631:19208:91;;;5632:1:59;2631:19208:91;;;;5927:70:59;2631:19208:91;;;;;5632:1:59;2631:19208:91;5632:1:59;2631:19208:91;;;;;5632:1:59;2631:19208:91;;;;;;;;;;3514:38;2631:19208;:::o;1580:996:29:-;14953:51;1580:996;1892:27;1580:996;;2631:19208:91;;14953:51:29;;;2631:19208:91;;;414:1:29;2631:19208:91;398:19:29;;2631:19208:91;;14953:51:29;;;;;;:::i;:::-;2631:19208:91;14943:62:29;;2631:19208:91;;;;;;;;;;;1892:27:29;;;;;2631:19208:91;;;;;;;;1892:27:29;;;-1:-1:-1;;;;;2631:19208:91;1892:27:29;;;;;;;-1:-1:-1;1892:27:29;;;1580:996;-1:-1:-1;;;;;;2147:423:29;;;2631:19208:91;2147:423:29;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;;14953:51;1892:27;14953:51;1892:27;;;;;;;:::i;:::-;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;;;;;;;;;;;:::o;6425:1227:59:-;;;;6582:14;;2631:19208:91;6582:26:59;6578:163;;6822:20;;;;2631:19208:91;;6822:20:59;;7529:47;;-1:-1:-1;;;;;2631:19208:91;;6818:156:59;;6425:1227;-1:-1:-1;7131:14:59;;7170:16;;;2631:19208:91;7131:14:59;;7170:16;7443:34;;2631:19208:91;;-1:-1:-1;;;;;2631:19208:91;7210:18:59;;;;2631:19208:91;7082:247:59;2631:19208:91;;3514:38;;;:::i;:::-;;;;-1:-1:-1;;;;;2631:19208:91;7082:247:59;;;3514:38:91;;7082:247:59;7210:18;7082:247;;3514:38:91;-1:-1:-1;7170:16:59;7082:247;;3514:38:91;2631:19208;-1:-1:-1;;;;;2631:19208:91;;;7443:34:59;:59;;2631:19208:91;7443:59:59;;7210:18;2631:19208:91;;;;;;;;;;7529:47:59;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2631:19208:91;7529:47:59;;;;;;7605:40;7529:47;-1:-1:-1;7529:47:59;;;7443:59;7512:64;7630:14;;7605:40;:::i;7529:47::-;;;;6822:20;7529:47;6822:20;7529:47;;;;;;;:::i;:::-;;;;7443:59;;-1:-1:-1;7443:59:59;;;6818:156;6944:18;;;2631:19208:91;6944:18:59;;-1:-1:-1;;;;;2631:19208:91;;;;;6944:18:59;:::i;:::-;6818:156;;;6578:163;-1:-1:-1;6689:18:59;;;2631:19208:91;6709:20:59;;;;2631:19208:91;-1:-1:-1;;;;;2631:19208:91;;:::o;20406:401::-;;2631:19208;;;;;20523:31;;;20519:68;;20709:18;-1:-1:-1;;;;;2631:19208:91;20709:91;;;;;20786:1;2631:19208;;20709:91;2631:19208;;;;;;;;;;;;;20709:91;;;;;2631:19208;;:::i;:::-;20668:30;;;2631:19208;;;;;;;;;;;;;;;;;;;;;;20709:91;;;;;;;;20406:401;:::o;2631:19208::-;3514:38;;-1:-1:-1;;;;;;2631:19208:91;;;;;;;:::o;1862:10:31:-;;;;;2631:19208:91;1862:10:31;;:::i;:::-;;;2631:19208:91;;1862:10:31;;;2631:19208:91;1862:10:31;;;;;;;2631:19208:91;1862:10:31;;;-1:-1:-1;;;;;2631:19208:91;1862:10:31;;;2631:19208:91;1862:10:31;;;;;;;-1:-1:-1;1862:10:31;;;2631:19208:91;;;1862:10:31:o;2631:19208:91:-;;;-1:-1:-1;;2631:19208:91;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2631:19208:91;;;;;;;;;;;;;:::o;4274:2260:90:-;;;;;;;;;2631:19208:91;;:::i;:::-;4518:17:90;2631:19208:91;;-1:-1:-1;;;;;2631:19208:91;;4572:14:90;4568:79;;4908:15;;;4958:74;2631:19208:91;4885:39:90;2631:19208:91;;;;;;;;4885:39:90;:::i;:::-;2631:19208:91;;;;;;;4958:74:90;;;:::i;:::-;5047:70;;;;;2631:19208:91;;;;;5061:26:90;;5047:70;5043:172;;5246:16;;;;;;;2631:19208:91;5290:25:90;;;;:::i;:::-;5280:35;;5335:23;;;:::i;:::-;5325:7;;;:33;5382:25;;;:::i;:::-;5368:11;;;:39;5433:25;;;:::i;:::-;4908:15;5417:13;;:41;5508:13;2631:19208:91;5537:9:90;2631:19208:91;5532:659:90;5548:14;;;;;;6201:293;;;;;;;;;;;5325:7;;;;6201:293;;5368:11;;;;6201:293;;4908:15;5417:13;;6201:293;;4274:2260;:::o;5564:3::-;5639:18;;;;;;;5603:73;5639:21;:18;5325:7;5639:18;;;;;;:21;:::i;:::-;2631:19208:91;-1:-1:-1;;;;;2631:19208:91;;5603:73:90;:::i;:::-;5694:14;;;5690:28;;5733:31;;-1:-1:-1;;;;;2631:19208:91;;;5733:31:90;:::i;:::-;2631:19208:91;5778:31:90;;-1:-1:-1;;;;;2631:19208:91;;;5778:31:90;:::i;:::-;5902:16;;;;;;:19;;;;:::i;:::-;2631:19208:91;5843:79:90;;;;;;;:::i;:::-;5937:7;;;;:26;;;;:::i;:::-;3514:38:91;5325:7:90;;5977;:27;;;;:::i;:::-;;;;2631:19208:91;;;;;;5977:27:90;6039:16;;;;;:19;;;;:::i;:::-;2631:19208:91;5368:11:90;;;6018;:40;;;;:::i;:::-;3514:38:91;5639:18:90;;;5325:7;5639:18;;6095;:21;;;;:::i;:::-;2631:19208:91;5417:13:90;4908:15;5417:13;6072;:44;;;;:::i;:::-;3514:38:91;2631:19208;;5564:3:90;2631:19208:91;5564:3:90;5537:9;2631:19208:91;5537:9:90;;;;;;;;5690:28;5710:8;;;;2631:19208:91;5710:8:90;;;5043:172;-1:-1:-1;5170:34:90;;;-1:-1:-1;;;;5170:34:90:o;5047:70::-;5109:8;5090:27;5109:8;;:::i;:::-;2631:19208:91;;;;5090:27:90;2631:19208:91;;;5090:27:90;;5047:70;;4568:79;-1:-1:-1;2631:19208:91;;-1:-1:-1;2631:19208:91;;4602:34:90;-1:-1:-1;;;;;4602:34:90:o;2631:19208:91:-;;677:2:73;2631:19208:91;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;10662:597:59;2631:19208:91;;10770:16:59;10766:64;;2631:19208:91;;;;;;;;11011:101:59;2631:19208:91;;;;;;;;1229:40:74;-1:-1:-1;11018:30:59;;2631:19208:91;;3514:38;;;;;;;;;;667:12:73;;659:50;667:12;;;;:::i;:::-;:23;;659:50;:::i;:::-;719:53;727:16;;;;;:::i;719:53::-;782:63;2631:19208:91;;807:16:73;;;;:::i;:::-;-1:-1:-1;790:33:73;782:63;:::i;:::-;889:2430;2631:19208:91;;889:2430:73;;;;2631:19208:91;889:2430:73;;;;;;;11011:101:59;;889:2430:73;;;;677:2;889:2430;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;889:2430:73;;677:2;889:2430;-1:-1:-1;;889:2430:73;;;11011:101:59;;889:2430:73;;;;;;;;;;;;;;;;11018:30:59;;;;;;11223:29;11018:30;;11223:29;:::i;:::-;11206:46;;;10662:597;:::o;10766:64::-;10802:17;2631:19208:91;10802:17:59;:::o;288:164:11:-;-1:-1:-1;;;;;368:25:11;;364:50;;-1:-1:-1;;;;;2631:19208:91;;288:164:11:o;364:50::-;402:12;;;;;;;;3146:225:5;2631:19208:91;;-1:-1:-1;;;3265:39:5;;3289:4;3265:39;;;2631:19208:91;-1:-1:-1;;;;;2631:19208:91;;;;;;;3146:225:5;;2631:19208:91;;;;;;3265:39:5;;2631:19208:91;;;;3265:39:5;;;;;;;-1:-1:-1;3265:39:5;;;3146:225;2631:19208:91;;;;;;;;5199:47:5;-1:-1:-1;2631:19208:91;;5199:47:5;;;;2631:19208:91;;;;5199:47:5;;2631:19208:91;;;;;;;5199:47:5;;;2631:19208:91;;;;;;5199:47:5;;;;;;:::i;:::-;9770:199;;;;;;;-1:-1:-1;9770:199:5;;;;9985:80;;3146:225;-1:-1:-1;5261:45:5;;-1:-1:-1;5261:45:5;5257:201;;3146:225;;;:::o;5257:201::-;2631:19208:91;;-1:-1:-1;;;5199:47:5;5349:43;;;-1:-1:-1;;;;;2631:19208:91;;;5199:47:5;5349:43;;2631:19208:91;5389:1:5;2631:19208:91;;;;5434:12:5;;5349:43;;;2631:19208:91;;;;5349:43:5;2631:19208:91;5349:43:5;;;:::i;:::-;5434:12;:::i;9985:80::-;9997:15;;;-1:-1:-1;9997:15:5;;-1:-1:-1;5261:45:5;-1:-1:-1;;;;;2631:19208:91;;10015:26:5;:30;;9997:67;9985:80;;;9997:67;10063:1;5261:45;10048:16;;9997:67;;3265:39;;;;;2631:19208:91;3265:39:5;2631:19208:91;3265:39:5;;;;;;;:::i;:::-;;;;;1434:6:69;2631:19208:91;;;1434:6:69;;;;;;;;2533:168;2631:19208:91;;;1434:6:69;;;;;;;2631:19208:91;;2533:168:69;:::o;1434:6::-;;:::i;2631:19208:91:-;;;;;;;;;-1:-1:-1;;2631:19208:91;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;2631:19208:91;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;2631:19208:91;;-1:-1:-1;;2631:19208:91;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;7790:949:57:-;;;;7908:825;;;2631:19208:91;;;;7978:8:57;7974:349;2631:19208:91;;;8117:38:57;8118:18;:22;:18;;8116:54;8118:18;;:::i;:::-;:22;:::i;:::-;8117:38;:::i;:::-;8116:54;:::i;7974:349::-;8275:18;;8274:34;8275:18;;:::i;7908:825::-;2631:19208:91;;;;;8393:8:57;8389:334;2631:19208:91;;;8519:18:57;;;8518:34;8519:18;;:::i;8389:334::-;8656:18;;;;:::i;:::-;2631:19208:91;;-1:-1:-1;;2631:19208:91;;-1:-1:-1;;2631:19208:91;;;;;;;;8655:38:57;;8654:54;8655:38;;:::i;858:4141:65:-;2631:19208:91;;;;-1:-1:-1;;2631:19208:91;;1464:147:65;;;;;;;;;;;;1736:19;;1901:6:90;1736:19:65;2631:19208:91;;;1837:10:65;1833:177;;2631:19208:91;2341:95:65;1901:6:90;2341:95:65;;2508:145;;;;;;2631:19208:91;;2508:145:65;;3094:82;;3480:21;2631:19208:91;858:4141:65;:::o;1833:177::-;1867:98;;1901:6:90;1867:98:65;;;1982:13;:::o;858:4141::-;2631:19208:91;;;;-1:-1:-1;;2631:19208:91;;1464:147:65;;;;;;;;;;;;1736:19;;2036:3:90;1736:19:65;2631:19208:91;;;1837:10:65;1833:177;;2631:19208:91;2341:95:65;2036:3:90;2341:95:65;;2508:145;;;;;;2631:19208:91;;2508:145:65;;3094:82;;3480:21;2631:19208:91;858:4141:65;:::o;1833:177::-;1867:98;;2036:3:90;1867:98:65;;;1982:13;:::o;2036:3:90:-;;;;;;;:::o;7009:1407::-;;;;;7311:23;7491:75;7009:1407;;7222:53;1795:4;7230:25;;7222:53;:::i;:::-;7311:23;:::i;:::-;7348:12;;;7344:120;;7009:1407;-1:-1:-1;;;;;2631:19208:91;7491:75:90;:::i;:::-;-1:-1:-1;;;;;7580:26:90;;7576:58;;7009:1407;7725:73;;7782:15;;7661:44;;-1:-1:-1;;;;;2631:19208:91;7661:44:90;:::i;:::-;7782:15;;2631:19208:91;;;;;;;;;7725:73:90;;;:::i;:::-;7825:39;2631:19208:91;;;;;;;7825:39:90;7890:8;;;;:::i;:::-;2631:19208:91;;;;;;7913:17:90;;7909:136;7913:17;;;7946;;;;8079:74;8179:68;7946:17;7909:136;;2631:19208:91;;;;8079:74:90;;;:::i;:::-;8198:48;;;;;2631:19208:91;;;;8198:48:90;8179:68;:::i;:::-;8257:153;;;;2631:19208:91;;;;;;8292:17:90;8288:40;;8257:153;7009:1407::o;8288:40::-;8311:17;-1:-1:-1;18925:431:91:o;8257:153:90:-;2631:19208:91;;;;;;8363:17:90;8359:40;;8257:153;7009:1407::o;8198:48::-;2631:19208:91;8230:16:90;;2631:19208:91;;8230:16:90;:::i;7909:136::-;2631:19208:91;;;;;;;;-1:-1:-1;7980:65:90;;7909:136;;;8079:74;8179:68;7909:136;;;7980:65;8017:17;-1:-1:-1;8079:74:90;7980:65;;7576:58;-1:-1:-1;;;;;;7576:58:90;;7344:120;7394:41;7393:60;7394:41;2631:19208:91;7393:60:90;:::i;:::-;7344:120;;;4633:271:35;-1:-1:-1;;;;;2631:19208:91;;4732:24:35;;4779:13;;4772:20;:::o;4728:170::-;2631:19208:91;;-1:-1:-1;;;4830:57:35;;-1:-1:-1;;;;;2631:19208:91;;;4830:57:35;;;2631:19208:91;;;;;;4830:57:35;;2631:19208:91;;;4830:57:35;;;;;;;2631:19208:91;4830:57:35;;;4823:64;;:::o;4830:57::-;;;;2631:19208:91;4830:57:35;2631:19208:91;4830:57:35;;;;;;;:::i;1472:2873::-;;;;-1:-1:-1;;;;;2631:19208:91;;1769:24:35;;1809:163;-1:-1:-1;1809:163:35;;;2085:8;1809:163;;;;2085:8;;2631:19208:91;2085:8:35;2081:127;;1765:2574;1472:2873::o;2081:127::-;2163:29;:::i;1765:2574::-;2238:1774;;;-1:-1:-1;;;2238:1774:35;;-1:-1:-1;;;;;2238:1774:35;;;;;;;;;;;;;;;;-1:-1:-1;;2238:1774:35;-1:-1:-1;2238:1774:35;;-1:-1:-1;2238:1774:35;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;-1:-1:-1;;;;;2631:19208:91;4268:28:35;:::i;1925:240:74:-;;3518:62:73;3473:2;2631:19208:91;;3526:28:73;;3518:62;:::i;:::-;3620:119;;;;;;2631:19208:91;;;;3944:27:73;2631:19208:91;;;4032:81:73;;;;2631:19208:91;;3518:62:73;2631:19208:91;;3620:119:73;2631:19208:91;;3526:28:73;;3518:62;:::i;:::-;3620:119;;;;;1925:240:74;:::o;2631:19208:91:-;;;-1:-1:-1;;;2631:19208:91;;3620:119:73;2631:19208:91;;;;3473:2:73;2631:19208:91;;;;-1:-1:-1;;;2631:19208:91;;;;;;;8698:307:90;;8787:17;8838:1;2631:19208:91;;;;;;;8838:1:90;2631:19208:91;8855:95:90;8862:10;;;;;;8967:11;;8959:39;8967:11;;;8959:39;:::i;8855:95::-;8888:10;;-1:-1:-1;8888:10:90;2036:3;;;;;;;2631:19208:91;;;;;;;;8838:1:90;2631:19208:91;8855:95:90;;;7772:4824:69;2391:66;-1:-1:-1;;1979:10:69;;-1:-1:-1;;;;;2631:19208:91;8327:79:69;8323:168;;2631:19208:91;;;;;;8521:27:69;;2631:19208:91;;2391:66:69;;8521:27;;8594:43;8608:29;;;:::i;:::-;2631:19208:91;;2391:66:69;;8594:43;8656:10;8663:3;8656:10;;8663:3;;-1:-1:-1;;;2631:19208:91;;;;8652:83:69;-1:-1:-1;;2391:66:69;2631:19208:91;;8805:196:69;;;;;;;2631:19208:91;8805:196:69;;9014;;;8805;9014;;2631:19208:91;9014:196:69;;9223;;;8805;9223;;2631:19208:91;9223:196:69;;9432;;;8805;9432;;2631:19208:91;9432:196:69;;9641;;;8805;9641;;2631:19208:91;9641:196:69;;9850;;;8805;9850;;2631:19208:91;9850:196:69;;10059;;;;8805;10059;;2631:19208:91;10059:196:69;;10268;;;;8805;10268;;2631:19208:91;10268:196:69;;10477;;;;8805;10477;;2631:19208:91;10477:196:69;;10686;;;;8805;10686;;2631:19208:91;10686:196:69;;10895;;;;8805;10895;;2631:19208:91;10895:196:69;;11104;;;;8805;11104;;2631:19208:91;11104:196:69;;11313;;;;;8805;11313;;2631:19208:91;11313:196:69;;11522:165;;;;;;11313:196;;;;;11104;;;;;10895;;;;;10686;;;;;10477;;;;;10268;2631:19208:91;10268:196:69;;;;;;10059;2631:19208:91;10059:196:69;;;;;;9850;2631:19208:91;9850:196:69;;;;;;9641;2631:19208:91;9641:196:69;;;;;;9432;2631:19208:91;9432:196:69;;;;;;9223;2631:19208:91;9223:196:69;;;;;;9014;2631:19208:91;9014:196:69;;;;;;8805;2631:19208:91;8805:196:69;;;;;;;9014;9223;9432;9641;9850;10059;10268;10477;10686;10895;11104;11313;11522:165;11732:24;2391:66;;;;;11932:62;;2631:19208:91;2391:66:69;;;11932:62;2631:19208:91;;2391:66:69;12346:39;2391:66;2631:19208:91;2391:66:69;2631:19208:91;;12416:163:69;2631:19208:91;;;;;;12416:17:69;:163;:17;;;:163;;;7772:4824;:::o;12416:163::-;-1:-1:-1;;;;;12478:26:69;;;:::i;:::-;2631:19208:91;12478:42:69;:101;;;7772:4824;:::o;12478:101::-;;;2631:19208:91;:::o;8652:83:69:-;2631:19208:91;;;8725:3:69;2631:19208:91;;8652:83:69;;;8323:168;8463:12;:::i;3508:1663:21:-;3741:1424;;-1:-1:-1;;;3741:1424:21;;-1:-1:-1;;;;;3741:1424:21;;;;;;;-1:-1:-1;;;3741:1424:21;;;;;;;;;2631:19208:91;3741:1424:21;2631:19208:91;3741:1424:21;-1:-1:-1;;3741:1424:21;;;;;;;;;;;;;;-1:-1:-1;3741:1424:21;;;;;;;;;;;;;4268:28:35;;;3741:1424:21;;;;;;;3508:1663;3741:1424;;-1:-1:-1;;;3741:1424:21;;-1:-1:-1;;;;;3741:1424:21;;;;;;;-1:-1:-1;3741:1424:21;;;;;;;;;;;2631:19208:91;3741:1424:21;2631:19208:91;3741:1424:21;-1:-1:-1;;3741:1424:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:35;;;3741:1424:21;;;;;;;2631:19208:91;;;;:::o;:::-;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2631:19208:91;;;;;;;;;;;;-1:-1:-1;;;2631:19208:91;;;;;;;8370:720:5;;-1:-1:-1;8507:421:5;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:5;;8942:15;;-1:-1:-1;;;;;;2631:19208:91;;8960:26:5;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:5;;;-1:-1:-1;;;;;2631:19208:91;;;;9033:40:5;2631:19208:91;;;9033:40:5;8942:68;9009:1;8994:16;;8942:68;;1793:259:63;-1:-1:-1;;;1869:177:63;;;;-1:-1:-1;;;;;1869:177:63;;;;;;;;;769:648:62;858:5;;2631:19208:91;;875:536:62;;;-1:-1:-1;;;;;875:536:62;-1:-1:-1;875:536:62;;;;;-1:-1:-1;;;;;875:536:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:648::o;3258:4054:69:-;3406:459;;;;;;;;;;1434:6;3883:35;;3879:78;;6533:763;4465:13;;4492:160;;;;;2631:19208:91;4492:160:69;;;4669:13;3406:459;4669:13;;4665:83;;3258:4054;4776:3;4766:13;;4762:83;;3258:4054;4873:3;4863:13;;4859:83;;3258:4054;4970:4;4960:14;;4956:84;;3258:4054;5068:4;5058:14;;5054:84;;3258:4054;5166:4;5156:14;;5152:84;;3258:4054;4492:160;5254:14;;5250:84;;3258:4054;5362:5;5352:15;;5348:85;;3258:4054;5461:5;5451:15;;5447:85;;3258:4054;5560:5;5550:15;;5546:85;;3258:4054;5659:5;5649:15;;5645:85;;3258:4054;5758:6;5748:16;;5744:86;;3258:4054;5858:6;5848:16;;5844:86;;3258:4054;5958:6;5948:16;;5944:86;;3258:4054;6058:6;6048:16;;6044:86;;3258:4054;6158:7;6148:17;;6144:86;;3258:4054;6258:7;6248:17;;6244:85;;3258:4054;6357:7;6347:17;;6343:83;;3258:4054;6454:7;6444:17;6440:78;;3258:4054;-1:-1:-1;;6533:763:69;;3258:4054;6533:763;5068:4;6533:763;3258:4054;:::o;6533:763::-;-1:-1:-1;;6533:763:69;;;6440:78;6485:25;2631:19208:91;;;;;;6440:78:69;;6343:83;6388:30;2631:19208:91;;;;;;6343:83:69;;6244:85;2631:19208:91;6289:32:69;2631:19208:91;;;6244:85:69;;;6144:86;2631:19208:91;6189:33:69;2631:19208:91;;;6144:86:69;;;6044;2631:19208:91;6088:34:69;2631:19208:91;;;6044:86:69;;;5944;2631:19208:91;5988:34:69;2631:19208:91;;;5944:86:69;;;5844;2631:19208:91;5888:34:69;2631:19208:91;;;5844:86:69;;;5744;2631:19208:91;5788:34:69;2631:19208:91;;;5744:86:69;;;5645:85;2631:19208:91;5688:34:69;2631:19208:91;;;5645:85:69;;;5546;2631:19208:91;5589:34:69;2631:19208:91;;;5546:85:69;;;5447;2631:19208:91;5490:34:69;2631:19208:91;;;5447:85:69;;;5348;2631:19208:91;5391:34:69;2631:19208:91;;;5348:85:69;;;5250:84;2631:19208:91;5292:34:69;2631:19208:91;;;5250:84:69;;;5152;2631:19208:91;5194:34:69;2631:19208:91;;;5152:84:69;;;5054;2631:19208:91;5096:34:69;2631:19208:91;;;5054:84:69;;;4956;2631:19208:91;4998:34:69;2631:19208:91;;;4956:84:69;;;4859:83;2631:19208:91;4900:34:69;2631:19208:91;;;4859:83:69;;;4762;2631:19208:91;4803:34:69;2631:19208:91;;;4762:83:69;;;4665;2631:19208:91;4706:34:69;2631:19208:91;;;4665:83:69;;;3879:78;3952:4;3920:20;;;1552:143:63;;;;;;;;","linkReferences":{},"immutableReferences":{"16966":[{"start":1497,"length":32},{"start":2297,"length":32},{"start":3612,"length":32},{"start":5363,"length":32},{"start":5927,"length":32},{"start":6505,"length":32},{"start":7121,"length":32},{"start":7328,"length":32},{"start":7508,"length":32}],"16970":[{"start":223,"length":32},{"start":865,"length":32},{"start":6675,"length":32},{"start":6912,"length":32},{"start":8825,"length":32}],"16974":[{"start":1098,"length":32},{"start":1621,"length":32}],"16978":[{"start":1404,"length":32}]}},"methodIdentifiers":{"getLimitOrderConfig()":"e3e8580c","msgSender()":"d737d0c7","poolManager()":"dc4c90d3","setLimitOrderConfig((uint256[],uint256[]))":"18ed2974","swapRouter()":"c31c9c07","swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":"c48677f4","unlockCallback(bytes)":"91dd7346","zoraLimitOrderBook()":"6baaa167"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"zoraLimitOrderBook_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permit2_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyV4Route\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientInputCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLimitOrderConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMultiple\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPercent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyAuthority\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsafeCast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"V3RouteDoesNotConnectToV4RouteStart\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroSwapDelta\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"name\":\"LimitOrderConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct PoolKey\",\"name\":\"poolKey\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickBeforeSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickAfterSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount0\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount1\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"multiple\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct SwapWithLimitOrders.CreatedOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"SwapWithLimitOrdersExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getLimitOrderConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setLimitOrderConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"limitOrderConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"inputCurrency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"v3Route\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey[]\",\"name\":\"v4Route\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct SwapWithLimitOrders.SwapWithLimitOrdersParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swapWithLimitOrders\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraLimitOrderBook\",\"outputs\":[{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"oveddan\",\"details\":\"This contract uses the poolManager unlock/callback pattern to execute swaps, place limit orders based on the tick range crossed during the swap, and attempt to fill those orders in a single transaction. Users call swapWithLimitOrders() directly, which triggers the unlock callback flow. Uses Permit2 for token approvals, matching the universal-router pattern.\",\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"params\":{\"amount0\":\"The amount of currency0 swapped (negative = paid, positive = received)\",\"amount1\":\"The amount of currency1 swapped (negative = paid, positive = received)\",\"orders\":\"Array of created orders with their configuration. Only includes orders that were actually created (skipped rungs due to rounding are omitted).\",\"sqrtPriceX96\":\"The sqrt price after the swap, used for USD price computation\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"permit2_\":\"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)\",\"poolManager_\":\"The Uniswap V4 pool manager\",\"swapRouter_\":\"The Uniswap V3 swap router\",\"zoraLimitOrderBook_\":\"The limit order book contract\"}},\"getLimitOrderConfig()\":{\"returns\":{\"_0\":\"The current limit order configuration\"}},\"msgSender()\":{\"returns\":{\"_0\":\"The address of the message sender.\"}},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"details\":\"Only callable by zoraLimitOrderBook.authority()\",\"params\":{\"config\":\"The new limit order configuration\"}},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"params\":{\"params\":\"The swap and limit order parameters\"},\"returns\":{\"delta\":\"The balance delta from the swap\"}},\"unlockCallback(bytes)\":{\"details\":\"This function executes V4 swaps and settles coins to recipient\",\"params\":{\"data\":\"Encoded CallbackData\"},\"returns\":{\"_0\":\"Encoded UnlockResult containing coin amount and pool info\"}}},\"title\":\"SwapWithLimitOrders\",\"version\":1},\"userdoc\":{\"errors\":{\"EmptyV4Route()\":[{\"notice\":\"Error thrown when v4Route is empty\"}],\"InsufficientOutputAmount()\":[{\"notice\":\"Error thrown when final swap output is below minimum\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidLimitOrderConfig()\":[{\"notice\":\"Error thrown when config does not match canonical config\"}],\"InvalidMultiple()\":[{\"notice\":\"A multiple is \\u2264 1.0x\"}],\"InvalidPercent()\":[{\"notice\":\"A percentage is zero\"}],\"LengthMismatch()\":[{\"notice\":\"Multiples and percentages arrays have different lengths\"}],\"OnlyAuthority()\":[{\"notice\":\"Error thrown when caller is not the authority\"}],\"OnlyPoolManager()\":[{\"notice\":\"Error thrown when caller is not the pool manager\"}],\"PercentOverflow()\":[{\"notice\":\"Percentages sum exceeds 100%\"}],\"UnsafeCast()\":[{\"notice\":\"Thrown when a valude greater than type(uint160).max is cast to uint160\"}],\"ZeroSwapDelta()\":[{\"notice\":\"Error thrown when swap delta is zero\"}]},\"events\":{\"LimitOrderConfigUpdated(uint256[],uint256[])\":{\"notice\":\"Emitted when limit order config is updated\"},\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"notice\":\"Emitted when a swap with limit order placement is executed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor\"},\"getLimitOrderConfig()\":{\"notice\":\"Returns the current limit order configuration\"},\"msgSender()\":{\"notice\":\"Returns the address of the message sender.\"},\"poolManager()\":{\"notice\":\"The Uniswap V4 pool manager\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"notice\":\"Sets the canonical limit order configuration\"},\"swapRouter()\":{\"notice\":\"The Uniswap V3 swap router\"},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"notice\":\"Executes a swap with automatic limit order placement and filling\"},\"unlockCallback(bytes)\":{\"notice\":\"Callback function called by the pool manager during unlock\"},\"zoraLimitOrderBook()\":{\"notice\":\"The limit order book contract\"}},\"notice\":\"Standalone router contract that executes swaps with automatic limit order placement and filling.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/router/SwapWithLimitOrders.sol\":\"SwapWithLimitOrders\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92\",\"dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol\":{\"keccak256\":\"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4\",\"dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol\":{\"keccak256\":\"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace\",\"dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85\",\"dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46\",\"dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7\"]},\"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol\":{\"keccak256\":\"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b\",\"dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx\"]},\"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol\":{\"keccak256\":\"0x89992a589697a2173547514c2b38a023b329f8300a307903352d699b910b9358\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f16db7133c3ff8a98473d7f1e273af67a7c6784f14e3e269811a7a428126eafd\",\"dweb:/ipfs/QmU7beBt7hqYJMdXpaFPxVMZGKq8GdCTv7K7qMZ2uBt2JQ\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol\":{\"keccak256\":\"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070\",\"dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol\":{\"keccak256\":\"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7\",\"dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol\":{\"keccak256\":\"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485\",\"dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9\",\"dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol\":{\"keccak256\":\"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14\",\"dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol\":{\"keccak256\":\"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4\",\"dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0xf9486590a998c8f1ad8c272cfeb372198a0ea4f2fc506f675564b9d1b2496726\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://59fa8b6b59d1d28d81a8ac2250e17a8f22bb0d5a8409a4be1f38f5130cf1f857\",\"dweb:/ipfs/QmPPNcbtJMe3NpF5Nt98qTFj2XMuYvKkVeLezNKYoBiUgc\"]},\"src/access/SimpleAccessManaged.sol\":{\"keccak256\":\"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269\",\"dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM\"]},\"src/libs/SwapLimitOrders.sol\":{\"keccak256\":\"0xfe1d3d583d323cc9f1053b048eef645feb6d9c80744b836ecc0ee5c6fa242cd5\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://ae59aaa5e8420e9b8a61f1ff1eaa09a3481f47223842643b66601a2b28490aaf\",\"dweb:/ipfs/QmVS6AXRNV14eaywvrYqGhLvtZfND2ydnubBoiyqeHYrKY\"]},\"src/router/SwapWithLimitOrders.sol\":{\"keccak256\":\"0xcf072dc9efe0947a5ba8be001f8062ded0f692493ebb4bbc49f21045d90dccf7\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://ac1055de360a4778befb8309fb44619c1f01f8076bcc28c22ad65ea542ed654c\",\"dweb:/ipfs/QmXGZ4FqfPMw3NGPQJ5mmNhfMAVWanaZrBzGBCbf2PJJhg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IZoraLimitOrderBook","name":"zoraLimitOrderBook_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"},{"internalType":"address","name":"permit2_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EmptyV4Route"},{"inputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"availableAmount","type":"uint256"}],"type":"error","name":"InsufficientInputCurrency"},{"inputs":[],"type":"error","name":"InsufficientOutputAmount"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[],"type":"error","name":"InvalidLimitOrderConfig"},{"inputs":[],"type":"error","name":"InvalidMultiple"},{"inputs":[],"type":"error","name":"InvalidPercent"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"OnlyAuthority"},{"inputs":[],"type":"error","name":"OnlyPoolManager"},{"inputs":[],"type":"error","name":"PercentOverflow"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnsafeCast"},{"inputs":[],"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart"},{"inputs":[],"type":"error","name":"ZeroSwapDelta"},{"inputs":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"percentages","type":"uint256[]","indexed":false}],"type":"event","name":"LimitOrderConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"indexed":false},{"internalType":"int24","name":"tickBeforeSwap","type":"int24","indexed":false},{"internalType":"int24","name":"tickAfterSwap","type":"int24","indexed":false},{"internalType":"int128","name":"amount0","type":"int128","indexed":false},{"internalType":"int128","name":"amount1","type":"int128","indexed":false},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint256","name":"multiple","type":"uint256"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"indexed":false}],"type":"event","name":"SwapWithLimitOrdersExecuted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getLimitOrderConfig","outputs":[{"internalType":"struct LimitOrderConfig","name":"","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[{"internalType":"struct LimitOrderConfig","name":"config","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimitOrderConfig"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct LimitOrderConfig","name":"limitOrderConfig","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]},{"internalType":"address","name":"inputCurrency","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"bytes","name":"v3Route","type":"bytes"},{"internalType":"struct PoolKey[]","name":"v4Route","type":"tuple[]","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"swapWithLimitOrders","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraLimitOrderBook","outputs":[{"internalType":"contract IZoraLimitOrderBook","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"permit2_":"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)","poolManager_":"The Uniswap V4 pool manager","swapRouter_":"The Uniswap V3 swap router","zoraLimitOrderBook_":"The limit order book contract"}},"getLimitOrderConfig()":{"returns":{"_0":"The current limit order configuration"}},"msgSender()":{"returns":{"_0":"The address of the message sender."}},"setLimitOrderConfig((uint256[],uint256[]))":{"details":"Only callable by zoraLimitOrderBook.authority()","params":{"config":"The new limit order configuration"}},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"params":{"params":"The swap and limit order parameters"},"returns":{"delta":"The balance delta from the swap"}},"unlockCallback(bytes)":{"details":"This function executes V4 swaps and settles coins to recipient","params":{"data":"Encoded CallbackData"},"returns":{"_0":"Encoded UnlockResult containing coin amount and pool info"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor"},"getLimitOrderConfig()":{"notice":"Returns the current limit order configuration"},"msgSender()":{"notice":"Returns the address of the message sender."},"poolManager()":{"notice":"The Uniswap V4 pool manager"},"setLimitOrderConfig((uint256[],uint256[]))":{"notice":"Sets the canonical limit order configuration"},"swapRouter()":{"notice":"The Uniswap V3 swap router"},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"notice":"Executes a swap with automatic limit order placement and filling"},"unlockCallback(bytes)":{"notice":"Callback function called by the pool manager during unlock"},"zoraLimitOrderBook()":{"notice":"The limit order book contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/router/SwapWithLimitOrders.sol":"SwapWithLimitOrders"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc","urls":["bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92","dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol":{"keccak256":"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c","urls":["bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4","dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol":{"keccak256":"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa","urls":["bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace","dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol":{"keccak256":"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1","urls":["bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85","dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf","urls":["bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46","dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol":{"keccak256":"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683","urls":["bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b","dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol":{"keccak256":"0x89992a589697a2173547514c2b38a023b329f8300a307903352d699b910b9358","urls":["bzz-raw://f16db7133c3ff8a98473d7f1e273af67a7c6784f14e3e269811a7a428126eafd","dweb:/ipfs/QmU7beBt7hqYJMdXpaFPxVMZGKq8GdCTv7K7qMZ2uBt2JQ"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol":{"keccak256":"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d","urls":["bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070","dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol":{"keccak256":"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e","urls":["bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7","dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol":{"keccak256":"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64","urls":["bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485","dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol":{"keccak256":"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1","urls":["bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9","dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol":{"keccak256":"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326","urls":["bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14","dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol":{"keccak256":"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff","urls":["bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4","dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4"],"license":"GPL-2.0-or-later"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0xf9486590a998c8f1ad8c272cfeb372198a0ea4f2fc506f675564b9d1b2496726","urls":["bzz-raw://59fa8b6b59d1d28d81a8ac2250e17a8f22bb0d5a8409a4be1f38f5130cf1f857","dweb:/ipfs/QmPPNcbtJMe3NpF5Nt98qTFj2XMuYvKkVeLezNKYoBiUgc"],"license":"ZORA-DELAYED-OSL-v1"},"src/access/SimpleAccessManaged.sol":{"keccak256":"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8","urls":["bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269","dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM"],"license":"MIT"},"src/libs/SwapLimitOrders.sol":{"keccak256":"0xfe1d3d583d323cc9f1053b048eef645feb6d9c80744b836ecc0ee5c6fa242cd5","urls":["bzz-raw://ae59aaa5e8420e9b8a61f1ff1eaa09a3481f47223842643b66601a2b28490aaf","dweb:/ipfs/QmVS6AXRNV14eaywvrYqGhLvtZfND2ydnubBoiyqeHYrKY"],"license":"ZORA-DELAYED-OSL-v1"},"src/router/SwapWithLimitOrders.sol":{"keccak256":"0xcf072dc9efe0947a5ba8be001f8062ded0f692493ebb4bbc49f21045d90dccf7","urls":["bzz-raw://ac1055de360a4778befb8309fb44619c1f01f8076bcc28c22ad65ea542ed654c","dweb:/ipfs/QmXGZ4FqfPMw3NGPQJ5mmNhfMAVWanaZrBzGBCbf2PJJhg"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":91}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"contract IPoolManager"},{"name":"zoraLimitOrderBook_","type":"address","internalType":"contract IZoraLimitOrderBook"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"},{"name":"permit2_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getLimitOrderConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimitOrderConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"swapWithLimitOrders","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"limitOrderConfig","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]},{"name":"inputCurrency","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"v3Route","type":"bytes","internalType":"bytes"},{"name":"v4Route","type":"tuple[]","internalType":"struct PoolKey[]","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"delta","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"payable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"zoraLimitOrderBook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraLimitOrderBook"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderConfigUpdated","inputs":[{"name":"multiples","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SwapWithLimitOrdersExecuted","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"poolKey","type":"tuple","indexed":false,"internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"tickBeforeSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"tickAfterSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"amount0","type":"int128","indexed":false,"internalType":"int128"},{"name":"amount1","type":"int128","indexed":false,"internalType":"int128"},{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"orders","type":"tuple[]","indexed":false,"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","components":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"multiple","type":"uint256","internalType":"uint256"},{"name":"percentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"EmptyV4Route","inputs":[]},{"type":"error","name":"InsufficientInputCurrency","inputs":[{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientOutputAmount","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidLimitOrderConfig","inputs":[]},{"type":"error","name":"InvalidMultiple","inputs":[]},{"type":"error","name":"InvalidPercent","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"OnlyPoolManager","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PercentOverflow","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnsafeCast","inputs":[]},{"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart","inputs":[]},{"type":"error","name":"ZeroSwapDelta","inputs":[]}],"bytecode":{"object":"0x610100346102e157601f613a4e38819003918201601f19168301916001600160401b038311848410176102e55780849260a0946040528339810103126102e1578051906001600160a01b038216908183036102e15760208101516001600160a01b038116929091908383036102e1576040820151936001600160a01b038516918286036102e157610092606085016102f9565b936001600160a01b03906100a8906080016102f9565b169081156102ce57600180546001600160a01b03199081169091555f80549182168417815560405193916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a31561028c57501561023d57156101f8576001600160a01b03169283156101b35760805260a05260c05260e052604051613740908161030e823960805181818161076701528181610a8c01528181610f880152818161167d015281816118b101528181611af301528181611d5b01528181611e2a0152611ede015260a0518181816103e001528181611b9d01528181611c8a0152612406015260c0518181816105d801526107e3015260e0518161070a0152f35b60405162461bcd60e51b815260206004820152601660248201527f5065726d6974322063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f53776170526f757465722063616e6e6f74206265207a65726f000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602160248201527f5a6f72614c696d69744f72646572426f6f6b2063616e6e6f74206265207a65726044820152606f60f81b6064820152608490fd5b62461bcd60e51b815260206004820152601a60248201527f506f6f6c4d616e616765722063616e6e6f74206265207a65726f0000000000006044820152606490fd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102e15756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100e95780636baaa167146100e4578063715018a6146100df57806379ba5097146100da5780638da5cb5b146100d557806391dd7346146100d0578063c31c9c07146100cb578063c48677f4146100c6578063d737d0c7146100c1578063dc4c90d3146100bc578063e30c3978146100b7578063e3e8580c146100b25763f2fde38b0361000e57610bf8565b610b40565b610abb565b610a77565b610a45565b610607565b6105c3565b610556565b6104f7565b610472565b61040f565b6103cb565b61027f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761011d57604052565b6100ee565b60a081019081106001600160401b0382111761011d57604052565b606081019081106001600160401b0382111761011d57604052565b90601f801991011681019081106001600160401b0382111761011d57604052565b60405190610188608083610158565b565b6040519061018860c083610158565b60405190610188606083610158565b6001600160401b03811161011d5760051b60200190565b9080601f8301121561021c5781356101d6816101a8565b926101e46040519485610158565b81845260208085019260051b82010192831161021c57602001905b82821061020c5750505090565b81358152602091820191016101ff565b5f80fd5b919060408382031261021c576040519061023982610102565b819380356001600160401b03811161021c57826102579183016101bf565b83526020810135916001600160401b03831161021c5760209261027a92016101bf565b910152565b3461021c57602036600319011261021c576004356001600160401b03811161021c576102af903690600401610220565b6102b76114d3565b6102c08161153c565b5080518051906001600160401b03821161011d57600160401b821161011d576002548260025580831061037d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610369577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103518251610c80565b5190519061036460405192839283610d3b565b0390a1005b600190602084519401938184015501610319565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103b657506102ee565b5f81556001016103a9565b5f91031261021c57565b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576104276114d3565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021c575f36600319011261021c57600154336001600160a01b03909116036104e457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461021c575f36600319011261021c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061055392818152019061051e565b90565b3461021c57602036600319011261021c576004356001600160401b03811161021c573660238201121561021c578060040135906001600160401b03821161021c57366024838301011161021c576105bf9160246105b39201610f86565b60405191829182610542565b0390f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261021c576004356001600160401b03811161021c578060040160e0600319833603011261021c5761063f81611091565b5f5160206137205f395f51905f525d602482019061065d828261109b565b610666906110b0565b61066f9061153c565b5061067a828261109b565b610683906110b0565b61068c90611fe3565b60a4830161069a81836110bb565b6106a6915015156110f0565b60848401926106b58484611106565b959060448201966106c588611091565b906106d086886110bb565b93909136906106de92611153565b9236906106ea92610de3565b906106f492612099565b6106fd86611091565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461073395612123565b61073d84866110bb565b61074786886110bb565b6107519150611189565b9061075b926111b0565b610764906111c5565b967f00000000000000000000000000000000000000000000000000000000000000009360a0892061079590866121d8565b5050986107a3915088611106565b926107ad90611091565b906107b6610179565b9336906107c292611153565b83526001600160a01b031660208301526040820152306060820152610807907f00000000000000000000000000000000000000000000000000000000000000006122cb565b9061081187611091565b9561081c90886110bb565b9460c401359361082c908961109b565b9461083561018a565b6001600160a01b039098168852369061084d92610de3565b602087015260408601526001600160a01b0316606085015260808401523661087491610220565b60a08301526040518092602082019061088c91611213565b03601f198101835261089e9083610158565b6040516348c8949160e01b815291829081906108bd9060048301610542565b6001600160a01b039093169203815a5f948591f18015610a1e576108f2915f91610a23575b506020808251830101910161134d565b925090959261091f610913610913610913608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a1e577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f60966109b194610990925f916109ef575b5015806109df575b6109cf57611091565b9360405195869560018060a01b031699339983600f0b9360801d9288611435565b0390a35f5f5160206137205f395f51905f525d6040515f8152602090f35b6109da8a8a896123f5565b611091565b508960020b8960020b1415610987565b610a11915060203d602011610a17575b610a098183610158565b810190611421565b5f61097f565b503d6109ff565b61131f565b610a3f91503d805f833e610a378183610158565b8101906112bd565b5f6108e2565b3461021c575f36600319011261021c576040516001600160a01b035f5160206137205f395f51905f525c168152602090f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b005750505090565b8251845260209384019390920191600101610af3565b610553916020610b2f8351604084526040840190610ae3565b920151906020818403910152610ae3565b3461021c575f36600319011261021c5760606020604051610b6081610102565b8281520152604051610b7181610102565b60405190600254808352602083019060025f5260205f20905f5b818110610bc6576105bf8587610ba381880382610158565b8152610bad61148b565b6020820152604051918291602083526020830190610b16565b8254845260209093019260019283019201610b8b565b6001600160a01b0381160361021c57565b359061018882610bdc565b3461021c57602036600319011261021c57600435610c1581610bdc565b610c1d6114d3565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161011d57600160401b821161011d5760035482600355808310610cf7575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610ce35750505050565b600190602084519401938184015501610cd6565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d305750610cab565b5f8155600101610d23565b9091610d5261055393604084526040840190610ae3565b916020818403910152610ae3565b8060020b0361021c57565b91908260a091031261021c57604051610d8381610122565b80928035610d9081610bdc565b82526020810135610da081610bdc565b6020830152604081013562ffffff8116810361021c57608091829160408501526060810135610dce81610d60565b6060850152013591610ddf83610bdc565b0152565b90929192610df0816101a8565b93610dfe6040519586610158565b60a060208684815201920283019281841161021c57915b838310610e225750505050565b602060a091610e318486610d6b565b815201920191610e15565b9080601f8301121561021c5781602061055393359101610de3565b60208183031261021c578035906001600160401b03821161021c570160c08183031261021c57610e8561018a565b91610e8f82610bed565b835260208201356001600160401b03811161021c5781610eb0918401610e3c565b602084015260408201356040840152610ecb60608301610bed565b60608401526080820135608084015260a08201356001600160401b03811161021c57610ef79201610220565b60a082015290565b90602080835192838152019201905f5b818110610f1c5750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f0f565b919594939092610f6460809460a0855260a0850190610eff565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361108257610fc291810190610e57565b610553610fce82611610565b6110746110386110626040610ffa6020880151610ff4602088015160018060a01b031690565b90611852565b9691939098611008856118a8565b9690958b878961101e885160018060801b031690565b60a0870151875190948f916001600160a01b031696611ab9565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d46565b01519160405196879560208701610f4a565b03601f198101835282610158565b63f655705d60e01b5f5260045ffd5b3561055381610bdc565b903590603e198136030182121561021c570190565b610553903690610220565b903590601e198136030182121561021c57018035906001600160401b03821161021c576020019160a082023603831361021c57565b156110f757565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561021c57018035906001600160401b03821161021c5760200191813603831361021c57565b6001600160401b03811161011d57601f01601f191660200190565b92919261115f82611138565b9161116d6040519384610158565b82948184528183011161021c578281602093845f960137010152565b5f1981019190821161119757565b610c6c565b634e487b7160e01b5f52603260045260245ffd5b91908110156111c05760a0020190565b61119c565b610553903690610d6b565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061129d5750505060a08460406105539596015160608401526112806060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b16565b909193602060a0826112b260019489516111d0565b01950192910161124c565b60208183031261021c578051906001600160401b03821161021c570181601f8201121561021c578051906112f082611138565b926112fe6040519485610158565b8284526020838301011161021c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361021c57565b519061018882610d60565b519061018882610bdc565b9060a08282031261021c5781516001600160401b03811161021c57820181601f8201121561021c57805190611381826101a8565b9261138f6040519485610158565b8284526020606081860194028301019181831161021c57602001925b8284106113e55750505050916113c36020830161132a565b916113d060408201611337565b9160806113df60608401611342565b92015190565b60608483031261021c5760206060916040516114008161013d565b865181528287015183820152604087015160408201528152019301926113ab565b9081602091031261021c576105539061132a565b939092610160959261144c866105539a99966111d0565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610eff565b60405190600354808352826020810160035f5260205f20925f5b8181106114ba57505061018892500383610158565b84548352600194850194879450602090930192016114a5565b5f546001600160a01b031633036104e457565b80518210156111c05760209160051b010190565b1561150157565b635c974e3d60e11b5f5260045ffd5b1561151757565b63b29d78b760e01b5f5260045ffd5b1561152d57565b63d88409d360e01b5f5260045ffd5b8051515f9291811515806115ce575b156115bf57905f915b81831061156c57505050610188612710831115611526565b9091936001906115b486602085016115906115888383516114e6565b5115156114fa565b6115ae670de0b6b3a76400006115a78489516114e6565b5111611510565b516114e6565b510194019190611554565b631fec674760e31b5f5260045ffd5b50602081015151821461154b565b604051906115e98261013d565b5f6040838281528260208201520152565b1561160157565b6342301c2360e01b5f5260045ffd5b6116186115dc565b50602081015190604081015160018060a01b03606083015116936040519361163f8561013d565b8452602084019182526040840194855261167961166b61165d6115dc565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561180557509160206116fe9994926117356116ea6116d48b6117509a986114e6565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b61248b565b82156117ea576401000276a4905b61171e611717610199565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124a2565b03815f8a5af1948515610a1e575f956117b7575b50600190858a156117a857828060801b03165b991561179957602001516001600160a01b03165b9601959193979092976116aa565b516001600160a01b031661178b565b60801d828060801b0316611777565b60019195506117dc9060203d81116117e3575b6117d48183610158565b8101906121c9565b9490611764565b503d6117ca565b73fffd8963efd1fc6a506488495d951d5263988d259061170c565b6001600160801b039092168952509295506101889450909250611832906001600160a01b03166020870152565b60408501528351608091909101516001600160801b0390911610156115fa565b9190915f608060405161186481610122565b828152826020820152826040820152826060820152015280515f19810190811161119757611891916114e6565b51805190926001600160a01b039081169116811491565b60a06118d591207f00000000000000000000000000000000000000000000000000000000000000006121d8565b50509091565b60405190608082018281106001600160401b0382111761011d57604052606080838181528160208201528160408201520152565b6040519061191e602083610158565b5f80835282815b82811061193157505050565b60209061193c6115dc565b82828501015201611925565b90611952826101a8565b61195f6040519182610158565b8281528092611970601f19916101a8565b01905f5b82811061198057505050565b60209061198b6115dc565b82828501015201611974565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261021c578051906001600160401b03821161021c57019080601f8301121561021c5781516119f4816101a8565b92611a026040519485610158565b81845260208085019260051b82010192831161021c57602001905b828210611a2a5750505090565b8151815260209182019101611a1d565b959493929091611a4d87611a67946111d0565b151560a087015261012060c0870152610120860190610ae3565b84810360e0860152602080835192838152019201905f5b818110611aa0575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611a7e565b959193611ad5939897959198611acd6118db565b50898861254e565b94919496855151151580611d34575b15611d22576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561021c575f6040518096630b0d9c0960e01b8252818381611b3f89308960048501611997565b03925af1948515610a1e575f95611d08575b5080151592838614611d015785935b611c73575b5050855192611b9060208801519660405197889687958695633ac1fb4960e21b875260048701611a3a565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a1e575f91611c51575b50611be08151611948565b935f5b8251811015611c4a5780611bf9600192856114e6565b51611c088260408801516114e6565b51611c178360608901516114e6565b5190611c21610199565b92835260208301526040820152611c3882896114e6565b52611c4381886114e6565b5001611be3565b5092915050565b611c6d91503d805f833e611c658183610158565b8101906119c1565b5f611bd5565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a1e575f94611ce2575b80611b65565b611cfa9060203d602011610a1757610a098183610158565b505f611cdc565b8093611b60565b80611d1687611d1c93610158565b806103c1565b5f611b51565b50505050505090611d3161190f565b91565b506001600160801b0382161515611ae4565b9192916001600160a01b0316908115611edb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a1e57611ded602094611df3935f97611ec7575b50611de785611dd68186612c5e565b94611de2848383612cc6565b612c5e565b92612757565b14612764565b600460405180948193630476982d60e21b83525af18015610a1e57611ea8575b505b6001600160801b038116611e2857505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051630b0d9c0960e01b8152935f938593849286928492611e899290916001600160a01b031660048501611997565b03925af18015610a1e57611e9a5750565b80611d165f61018893610158565b611ec09060203d6020116117e3576117d48183610158565b505f611e13565b80611d1689611ed593610158565b5f611dc7565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a1e57602092611f89575b50600460405180948193630476982d60e21b83525af18015610a1e57611f6a575b50611e15565b611f829060203d6020116117e3576117d48183610158565b505f611f64565b80611d165f611f9793610158565b5f611f43565b15611fa457565b636741e8e960e11b5f5260045ffd5b6002548110156111c05760025f5260205f2001905f90565b6003548110156111c05760035f5260205f2001905f90565b60025490811561207f57818151511480612071575b61200190611f9d565b5f5b82811061200f57505050565b8061201d60019284516114e6565b5161203461202a83611fb3565b90549060031b1c90565b148061204a575b61204490611f9d565b01612003565b5061204461205c8260208601516114e6565b5161206961202a84611fcb565b14905061203b565b506020810151518214611ff8565b5050565b1561208a57565b63bdcc3d9760e01b5f5260045ffd5b8251156121005780516120f157505b8151156111c057602091909101518051610188926001600160a01b03908116911681149182156120da575b5050612083565b602001516001600160a01b03161490505f806120d3565b6120fb915061277a565b6120a8565b505050565b1561210e575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616612148575050506101889250808214612105565b90929193806121b357506001600160a01b03169061216590612864565b91813b1561021c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611e89565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261021c575190565b602090612223939260405183810191825260066040820152604081526121ff606082610158565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a1e575f92612266575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61228091925060203d6020116117e3576117d48183610158565b905f61223e565b60208152608060606122a4845183602086015260a085019061051e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156123dd5760208381018051909261236f916001600160a01b0316806123bc575b508551606087015190949061234c90610913906001600160a01b03169260408a0193612334855191612322610179565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6123b45751935b60405194858094819363b858183f60e01b835260048301612287565b03926001600160a01b03165af18015610a1e57610553915f91612395575b50925161277a565b6123ae915060203d6020116117e3576117d48183610158565b5f61238d565b505f93612353565b60408701516123d7916001600160a01b03848116911661288d565b5f6122f2565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612100577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c575f92836101449261245c946040519788968795632fc7dd6b60e11b875260048701906111d0565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a1e57611e9a5750565b600f0b60016001607f1b03198114611197575f0390565b90916124b182610140946111d0565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b906124f4826101a8565b6125016040519182610158565b8281528092612512601f19916101a8565b0190602036910137565b6001600160801b03918216908216019190821161119757565b6001600160801b03918216908216039190821161119757565b959395949190929461255e6118db565b965f966001600160801b0384161561273b5773fffd8963efd1fc6a506488495d951d5263988d256401000276a4871561272457506001600160a01b0390811690831610155b61271a579493929190835151926125b9846124ea565b8a526125c4846124ea565b60208b01526125d2846124ea565b60408b01526125e0846124ea565b60608b0152955f955f955b858710612614575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661263f61262f896020859e9c9e01516114e6565b516001600160801b038d166129c3565b98891561270e5761265a906001600160801b038b169061251c565b9a61266f906001600160801b038b1690612535565b98818d8a85519061267f916114e6565b5161268d908989898d612b0a565b928282519061269b916114e6565b5260200151906126aa916114e6565b906126b7919060020b9052565b8b81898451906126c6916114e6565b519160400151906126d6916114e6565b528b81896020850151906126e9916114e6565b519160600151906126f9916114e6565b52600101966001905b019594939291906125eb565b9a985096600190612702565b5091949350505050565b6001600160a01b03908116908416111590506125a3565b505f96508695945050505050565b90601f820180921161119757565b9190820180921161119757565b1561276b57565b637627529f60e01b5f5260045ffd5b80511561285f575f9160179160429084905b805182611197578661119757831161284a57805190858203918083116111975786906127c2846127bb81612749565b1015613233565b6127d0826127bb8682612757565b6127e683516127df8685612757565b1115613270565b036127ff5750506040515f81526020810160405261278c565b60405191601f81169187831560051b80858701019484860193010101905b8084106128375750508252601f01601f191660405261278c565b909260208091855181520193019061281d565b92945050506128599150612d57565b50905090565b505f90565b6001600160a01b03811161287e576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a1e575f936129a2575b5082018092116111975760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612911606486610158565b84519082855af15f51903d81612976575b501590505b61293057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610188926129719061296b8160648101611074565b826132f4565b6132f4565b1515905061299657506129276001600160a01b0382163b15155b5f612922565b60016129279114612990565b6129bc91935060203d6020116117e3576117d48183610158565b915f6128d0565b808202905f1983820990828083109203918083039283612710111561021c5714612a21577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561021c5714612a8e577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b8115612ab9570490565b612a9b565b60020b627fffff198114611197575f0390565b60020b60010190627fffff8213627fffff1983121761119757565b9060020b9060020b0190627fffff198212627fffff83131761119757565b91949392612b2e612b449294612b29670de0b6b3a76400008211611510565b612dd7565b908415612c45575b6001600160a01b0316612a2c565b6001600160a01b038111612c37575b612b8190606090612b6c906001600160a01b0316612e1d565b920191612b7a835160020b90565b90846130b8565b612b94612b8f835160020b90565b613147565b90612b9e82612abe565b8160020b8360020b81135f14612c105750505090612bc7612bd992955b825160020b90856130b8565b908315612c03575160020b5b90612aec565b9015612bf3578060020b8360020b12612bef5750565b9150565b8060020b8360020b13612bef5750565b51612bd39060020b612abe565b90809297935060020b13612c2d575b5090612bc7612bd992612bbb565b9450612bc7612c1f565b506001600160a01b03612b53565b90612c5890670de0b6b3a7640000612aaf565b90612b36565b6001600160a01b038116612c7157503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a1e575f91612cad575090565b610553915060203d6020116117e3576117d48183610158565b9091906001600160a01b038116612cf357505f808080612ce794865af11590565b612cee5750565b6131ca565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612d495750565b6001600160a01b031661315d565b90612d666014835110156132b0565b602082015160601c916017815110612d9b57601781015190602b81612d926017926020945110156132b0565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111975760011c905b838210612dfd575050610188821515611510565b909250828015612ab9578082049081018091116111975760011c90612de9565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b03161161305d5760018060a01b0316612e5b8160201b90565b80612e6e612e688361336c565b60ff1690565b91608083106130505750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612ffe9060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146130305750905090565b6001600160a01b03613041846133ef565b161161304b575090565b905090565b905081607f031b90612e80565b61334c565b600291820b910b0390627fffff198212627fffff83131761119757565b60020b9060020b908115612ab957627fffff1981145f19831416611197570590565b9060020b9060020b02908160020b91820361119757565b909190156130fc575f8260020b125f146130ef576130ea816130e56130e08261055396613062565b612ad1565b61307f565b6130a1565b6130ea816105539361307f565b905f8160020b125f1461311757906130ea816105539361307f565b8161312191612aec565b60020b5f190190627fffff198212627fffff831317611197576130ea816105539361307f565b8060020b8015612ab957620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561323a57565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561327757565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b156132b757565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af11561131f575f513d61334357506001600160a01b0381163b155b6133235750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561331c565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561021c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137095763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166136ed575b600481166136d1575b600881166136b5575b60108116613699575b6020811661367d575b60408116613661575b60808116613645575b6101008116613629575b610200811661360d575b61040081166135f1575b61080081166135d5575b61100081166135b9575b612000811661359d575b6140008116613581575b6180008116613565575b620100008116613549575b62020000811661352e575b620400008116613513575b62080000166134fa575b5f126134f2575b0160201c90565b5f19046134eb565b6b048a170391f7dc42444e8fa290910260801c906134e4565b6d2216e584f5fa1ea926041bedfe9890920260801c916134da565b916e5d6af8dedb81196699c329225ee6040260801c916134cf565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916134c4565b916f31be135f97d08fd981231505542fcfa60260801c916134b9565b916f70d869a156d2a1b890bb3df62baf32f70260801c916134af565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134a5565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161349b565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91613491565b916ff3392b0822b70005940c7a398e4b70f30260801c91613487565b916ff987a7253ac413176f2b074cf7815e540260801c9161347d565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91613473565b916ffe5dee046a99a2a811c461f1969c30530260801c91613469565b916fff2ea16466c96a3843ec78b326b528610260801c91613460565b916fff973b41fa98c081472e6896dfb254c00260801c91613457565b916fffcb9843d60f6159c9db58835c9266440260801c9161344e565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91613445565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c9161343c565b916ffff97272373d413259a46990580e213a0260801c91613433565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2771:19161:92:-:0;;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;2771:19161:92;;;;;;:::i;:::-;;1273:26:0;;;1269:95;;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;3052:40:0;;-1:-1:-1;3052:40:0;7497:35:92;2771:19161;;7581:42;;2771:19161;;7679:34;2771:19161;;-1:-1:-1;;;;;2771:19161:92;;7761:22;;2771:19161;;;7820:26;2771:19161;7856:40;7906:24;;7940:38;;2771:19161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7906:24;2771:19161;;;;;;;;;;7940:38;2771:19161;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;2771:19161:92;;-1:-1:-1;1322:31:0;2771:19161:92;-1:-1:-1;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;;;;-1:-1:-1;2771:19161:92;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100e95780636baaa167146100e4578063715018a6146100df57806379ba5097146100da5780638da5cb5b146100d557806391dd7346146100d0578063c31c9c07146100cb578063c48677f4146100c6578063d737d0c7146100c1578063dc4c90d3146100bc578063e30c3978146100b7578063e3e8580c146100b25763f2fde38b0361000e57610bf8565b610b40565b610abb565b610a77565b610a45565b610607565b6105c3565b610556565b6104f7565b610472565b61040f565b6103cb565b61027f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761011d57604052565b6100ee565b60a081019081106001600160401b0382111761011d57604052565b606081019081106001600160401b0382111761011d57604052565b90601f801991011681019081106001600160401b0382111761011d57604052565b60405190610188608083610158565b565b6040519061018860c083610158565b60405190610188606083610158565b6001600160401b03811161011d5760051b60200190565b9080601f8301121561021c5781356101d6816101a8565b926101e46040519485610158565b81845260208085019260051b82010192831161021c57602001905b82821061020c5750505090565b81358152602091820191016101ff565b5f80fd5b919060408382031261021c576040519061023982610102565b819380356001600160401b03811161021c57826102579183016101bf565b83526020810135916001600160401b03831161021c5760209261027a92016101bf565b910152565b3461021c57602036600319011261021c576004356001600160401b03811161021c576102af903690600401610220565b6102b76114d3565b6102c08161153c565b5080518051906001600160401b03821161011d57600160401b821161011d576002548260025580831061037d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610369577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103518251610c80565b5190519061036460405192839283610d3b565b0390a1005b600190602084519401938184015501610319565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103b657506102ee565b5f81556001016103a9565b5f91031261021c57565b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576104276114d3565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021c575f36600319011261021c57600154336001600160a01b03909116036104e457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461021c575f36600319011261021c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061055392818152019061051e565b90565b3461021c57602036600319011261021c576004356001600160401b03811161021c573660238201121561021c578060040135906001600160401b03821161021c57366024838301011161021c576105bf9160246105b39201610f86565b60405191829182610542565b0390f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261021c576004356001600160401b03811161021c578060040160e0600319833603011261021c5761063f81611091565b5f5160206137205f395f51905f525d602482019061065d828261109b565b610666906110b0565b61066f9061153c565b5061067a828261109b565b610683906110b0565b61068c90611fe3565b60a4830161069a81836110bb565b6106a6915015156110f0565b60848401926106b58484611106565b959060448201966106c588611091565b906106d086886110bb565b93909136906106de92611153565b9236906106ea92610de3565b906106f492612099565b6106fd86611091565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461073395612123565b61073d84866110bb565b61074786886110bb565b6107519150611189565b9061075b926111b0565b610764906111c5565b967f00000000000000000000000000000000000000000000000000000000000000009360a0892061079590866121d8565b5050986107a3915088611106565b926107ad90611091565b906107b6610179565b9336906107c292611153565b83526001600160a01b031660208301526040820152306060820152610807907f00000000000000000000000000000000000000000000000000000000000000006122cb565b9061081187611091565b9561081c90886110bb565b9460c401359361082c908961109b565b9461083561018a565b6001600160a01b039098168852369061084d92610de3565b602087015260408601526001600160a01b0316606085015260808401523661087491610220565b60a08301526040518092602082019061088c91611213565b03601f198101835261089e9083610158565b6040516348c8949160e01b815291829081906108bd9060048301610542565b6001600160a01b039093169203815a5f948591f18015610a1e576108f2915f91610a23575b506020808251830101910161134d565b925090959261091f610913610913610913608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a1e577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f60966109b194610990925f916109ef575b5015806109df575b6109cf57611091565b9360405195869560018060a01b031699339983600f0b9360801d9288611435565b0390a35f5f5160206137205f395f51905f525d6040515f8152602090f35b6109da8a8a896123f5565b611091565b508960020b8960020b1415610987565b610a11915060203d602011610a17575b610a098183610158565b810190611421565b5f61097f565b503d6109ff565b61131f565b610a3f91503d805f833e610a378183610158565b8101906112bd565b5f6108e2565b3461021c575f36600319011261021c576040516001600160a01b035f5160206137205f395f51905f525c168152602090f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b005750505090565b8251845260209384019390920191600101610af3565b610553916020610b2f8351604084526040840190610ae3565b920151906020818403910152610ae3565b3461021c575f36600319011261021c5760606020604051610b6081610102565b8281520152604051610b7181610102565b60405190600254808352602083019060025f5260205f20905f5b818110610bc6576105bf8587610ba381880382610158565b8152610bad61148b565b6020820152604051918291602083526020830190610b16565b8254845260209093019260019283019201610b8b565b6001600160a01b0381160361021c57565b359061018882610bdc565b3461021c57602036600319011261021c57600435610c1581610bdc565b610c1d6114d3565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161011d57600160401b821161011d5760035482600355808310610cf7575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610ce35750505050565b600190602084519401938184015501610cd6565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d305750610cab565b5f8155600101610d23565b9091610d5261055393604084526040840190610ae3565b916020818403910152610ae3565b8060020b0361021c57565b91908260a091031261021c57604051610d8381610122565b80928035610d9081610bdc565b82526020810135610da081610bdc565b6020830152604081013562ffffff8116810361021c57608091829160408501526060810135610dce81610d60565b6060850152013591610ddf83610bdc565b0152565b90929192610df0816101a8565b93610dfe6040519586610158565b60a060208684815201920283019281841161021c57915b838310610e225750505050565b602060a091610e318486610d6b565b815201920191610e15565b9080601f8301121561021c5781602061055393359101610de3565b60208183031261021c578035906001600160401b03821161021c570160c08183031261021c57610e8561018a565b91610e8f82610bed565b835260208201356001600160401b03811161021c5781610eb0918401610e3c565b602084015260408201356040840152610ecb60608301610bed565b60608401526080820135608084015260a08201356001600160401b03811161021c57610ef79201610220565b60a082015290565b90602080835192838152019201905f5b818110610f1c5750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f0f565b919594939092610f6460809460a0855260a0850190610eff565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361108257610fc291810190610e57565b610553610fce82611610565b6110746110386110626040610ffa6020880151610ff4602088015160018060a01b031690565b90611852565b9691939098611008856118a8565b9690958b878961101e885160018060801b031690565b60a0870151875190948f916001600160a01b031696611ab9565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d46565b01519160405196879560208701610f4a565b03601f198101835282610158565b63f655705d60e01b5f5260045ffd5b3561055381610bdc565b903590603e198136030182121561021c570190565b610553903690610220565b903590601e198136030182121561021c57018035906001600160401b03821161021c576020019160a082023603831361021c57565b156110f757565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561021c57018035906001600160401b03821161021c5760200191813603831361021c57565b6001600160401b03811161011d57601f01601f191660200190565b92919261115f82611138565b9161116d6040519384610158565b82948184528183011161021c578281602093845f960137010152565b5f1981019190821161119757565b610c6c565b634e487b7160e01b5f52603260045260245ffd5b91908110156111c05760a0020190565b61119c565b610553903690610d6b565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061129d5750505060a08460406105539596015160608401526112806060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b16565b909193602060a0826112b260019489516111d0565b01950192910161124c565b60208183031261021c578051906001600160401b03821161021c570181601f8201121561021c578051906112f082611138565b926112fe6040519485610158565b8284526020838301011161021c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361021c57565b519061018882610d60565b519061018882610bdc565b9060a08282031261021c5781516001600160401b03811161021c57820181601f8201121561021c57805190611381826101a8565b9261138f6040519485610158565b8284526020606081860194028301019181831161021c57602001925b8284106113e55750505050916113c36020830161132a565b916113d060408201611337565b9160806113df60608401611342565b92015190565b60608483031261021c5760206060916040516114008161013d565b865181528287015183820152604087015160408201528152019301926113ab565b9081602091031261021c576105539061132a565b939092610160959261144c866105539a99966111d0565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610eff565b60405190600354808352826020810160035f5260205f20925f5b8181106114ba57505061018892500383610158565b84548352600194850194879450602090930192016114a5565b5f546001600160a01b031633036104e457565b80518210156111c05760209160051b010190565b1561150157565b635c974e3d60e11b5f5260045ffd5b1561151757565b63b29d78b760e01b5f5260045ffd5b1561152d57565b63d88409d360e01b5f5260045ffd5b8051515f9291811515806115ce575b156115bf57905f915b81831061156c57505050610188612710831115611526565b9091936001906115b486602085016115906115888383516114e6565b5115156114fa565b6115ae670de0b6b3a76400006115a78489516114e6565b5111611510565b516114e6565b510194019190611554565b631fec674760e31b5f5260045ffd5b50602081015151821461154b565b604051906115e98261013d565b5f6040838281528260208201520152565b1561160157565b6342301c2360e01b5f5260045ffd5b6116186115dc565b50602081015190604081015160018060a01b03606083015116936040519361163f8561013d565b8452602084019182526040840194855261167961166b61165d6115dc565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561180557509160206116fe9994926117356116ea6116d48b6117509a986114e6565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b61248b565b82156117ea576401000276a4905b61171e611717610199565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124a2565b03815f8a5af1948515610a1e575f956117b7575b50600190858a156117a857828060801b03165b991561179957602001516001600160a01b03165b9601959193979092976116aa565b516001600160a01b031661178b565b60801d828060801b0316611777565b60019195506117dc9060203d81116117e3575b6117d48183610158565b8101906121c9565b9490611764565b503d6117ca565b73fffd8963efd1fc6a506488495d951d5263988d259061170c565b6001600160801b039092168952509295506101889450909250611832906001600160a01b03166020870152565b60408501528351608091909101516001600160801b0390911610156115fa565b9190915f608060405161186481610122565b828152826020820152826040820152826060820152015280515f19810190811161119757611891916114e6565b51805190926001600160a01b039081169116811491565b60a06118d591207f00000000000000000000000000000000000000000000000000000000000000006121d8565b50509091565b60405190608082018281106001600160401b0382111761011d57604052606080838181528160208201528160408201520152565b6040519061191e602083610158565b5f80835282815b82811061193157505050565b60209061193c6115dc565b82828501015201611925565b90611952826101a8565b61195f6040519182610158565b8281528092611970601f19916101a8565b01905f5b82811061198057505050565b60209061198b6115dc565b82828501015201611974565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261021c578051906001600160401b03821161021c57019080601f8301121561021c5781516119f4816101a8565b92611a026040519485610158565b81845260208085019260051b82010192831161021c57602001905b828210611a2a5750505090565b8151815260209182019101611a1d565b959493929091611a4d87611a67946111d0565b151560a087015261012060c0870152610120860190610ae3565b84810360e0860152602080835192838152019201905f5b818110611aa0575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611a7e565b959193611ad5939897959198611acd6118db565b50898861254e565b94919496855151151580611d34575b15611d22576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561021c575f6040518096630b0d9c0960e01b8252818381611b3f89308960048501611997565b03925af1948515610a1e575f95611d08575b5080151592838614611d015785935b611c73575b5050855192611b9060208801519660405197889687958695633ac1fb4960e21b875260048701611a3a565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a1e575f91611c51575b50611be08151611948565b935f5b8251811015611c4a5780611bf9600192856114e6565b51611c088260408801516114e6565b51611c178360608901516114e6565b5190611c21610199565b92835260208301526040820152611c3882896114e6565b52611c4381886114e6565b5001611be3565b5092915050565b611c6d91503d805f833e611c658183610158565b8101906119c1565b5f611bd5565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a1e575f94611ce2575b80611b65565b611cfa9060203d602011610a1757610a098183610158565b505f611cdc565b8093611b60565b80611d1687611d1c93610158565b806103c1565b5f611b51565b50505050505090611d3161190f565b91565b506001600160801b0382161515611ae4565b9192916001600160a01b0316908115611edb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a1e57611ded602094611df3935f97611ec7575b50611de785611dd68186612c5e565b94611de2848383612cc6565b612c5e565b92612757565b14612764565b600460405180948193630476982d60e21b83525af18015610a1e57611ea8575b505b6001600160801b038116611e2857505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051630b0d9c0960e01b8152935f938593849286928492611e899290916001600160a01b031660048501611997565b03925af18015610a1e57611e9a5750565b80611d165f61018893610158565b611ec09060203d6020116117e3576117d48183610158565b505f611e13565b80611d1689611ed593610158565b5f611dc7565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a1e57602092611f89575b50600460405180948193630476982d60e21b83525af18015610a1e57611f6a575b50611e15565b611f829060203d6020116117e3576117d48183610158565b505f611f64565b80611d165f611f9793610158565b5f611f43565b15611fa457565b636741e8e960e11b5f5260045ffd5b6002548110156111c05760025f5260205f2001905f90565b6003548110156111c05760035f5260205f2001905f90565b60025490811561207f57818151511480612071575b61200190611f9d565b5f5b82811061200f57505050565b8061201d60019284516114e6565b5161203461202a83611fb3565b90549060031b1c90565b148061204a575b61204490611f9d565b01612003565b5061204461205c8260208601516114e6565b5161206961202a84611fcb565b14905061203b565b506020810151518214611ff8565b5050565b1561208a57565b63bdcc3d9760e01b5f5260045ffd5b8251156121005780516120f157505b8151156111c057602091909101518051610188926001600160a01b03908116911681149182156120da575b5050612083565b602001516001600160a01b03161490505f806120d3565b6120fb915061277a565b6120a8565b505050565b1561210e575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616612148575050506101889250808214612105565b90929193806121b357506001600160a01b03169061216590612864565b91813b1561021c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611e89565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261021c575190565b602090612223939260405183810191825260066040820152604081526121ff606082610158565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a1e575f92612266575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61228091925060203d6020116117e3576117d48183610158565b905f61223e565b60208152608060606122a4845183602086015260a085019061051e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156123dd5760208381018051909261236f916001600160a01b0316806123bc575b508551606087015190949061234c90610913906001600160a01b03169260408a0193612334855191612322610179565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6123b45751935b60405194858094819363b858183f60e01b835260048301612287565b03926001600160a01b03165af18015610a1e57610553915f91612395575b50925161277a565b6123ae915060203d6020116117e3576117d48183610158565b5f61238d565b505f93612353565b60408701516123d7916001600160a01b03848116911661288d565b5f6122f2565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612100577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c575f92836101449261245c946040519788968795632fc7dd6b60e11b875260048701906111d0565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a1e57611e9a5750565b600f0b60016001607f1b03198114611197575f0390565b90916124b182610140946111d0565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b906124f4826101a8565b6125016040519182610158565b8281528092612512601f19916101a8565b0190602036910137565b6001600160801b03918216908216019190821161119757565b6001600160801b03918216908216039190821161119757565b959395949190929461255e6118db565b965f966001600160801b0384161561273b5773fffd8963efd1fc6a506488495d951d5263988d256401000276a4871561272457506001600160a01b0390811690831610155b61271a579493929190835151926125b9846124ea565b8a526125c4846124ea565b60208b01526125d2846124ea565b60408b01526125e0846124ea565b60608b0152955f955f955b858710612614575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661263f61262f896020859e9c9e01516114e6565b516001600160801b038d166129c3565b98891561270e5761265a906001600160801b038b169061251c565b9a61266f906001600160801b038b1690612535565b98818d8a85519061267f916114e6565b5161268d908989898d612b0a565b928282519061269b916114e6565b5260200151906126aa916114e6565b906126b7919060020b9052565b8b81898451906126c6916114e6565b519160400151906126d6916114e6565b528b81896020850151906126e9916114e6565b519160600151906126f9916114e6565b52600101966001905b019594939291906125eb565b9a985096600190612702565b5091949350505050565b6001600160a01b03908116908416111590506125a3565b505f96508695945050505050565b90601f820180921161119757565b9190820180921161119757565b1561276b57565b637627529f60e01b5f5260045ffd5b80511561285f575f9160179160429084905b805182611197578661119757831161284a57805190858203918083116111975786906127c2846127bb81612749565b1015613233565b6127d0826127bb8682612757565b6127e683516127df8685612757565b1115613270565b036127ff5750506040515f81526020810160405261278c565b60405191601f81169187831560051b80858701019484860193010101905b8084106128375750508252601f01601f191660405261278c565b909260208091855181520193019061281d565b92945050506128599150612d57565b50905090565b505f90565b6001600160a01b03811161287e576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a1e575f936129a2575b5082018092116111975760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612911606486610158565b84519082855af15f51903d81612976575b501590505b61293057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610188926129719061296b8160648101611074565b826132f4565b6132f4565b1515905061299657506129276001600160a01b0382163b15155b5f612922565b60016129279114612990565b6129bc91935060203d6020116117e3576117d48183610158565b915f6128d0565b808202905f1983820990828083109203918083039283612710111561021c5714612a21577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561021c5714612a8e577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b8115612ab9570490565b612a9b565b60020b627fffff198114611197575f0390565b60020b60010190627fffff8213627fffff1983121761119757565b9060020b9060020b0190627fffff198212627fffff83131761119757565b91949392612b2e612b449294612b29670de0b6b3a76400008211611510565b612dd7565b908415612c45575b6001600160a01b0316612a2c565b6001600160a01b038111612c37575b612b8190606090612b6c906001600160a01b0316612e1d565b920191612b7a835160020b90565b90846130b8565b612b94612b8f835160020b90565b613147565b90612b9e82612abe565b8160020b8360020b81135f14612c105750505090612bc7612bd992955b825160020b90856130b8565b908315612c03575160020b5b90612aec565b9015612bf3578060020b8360020b12612bef5750565b9150565b8060020b8360020b13612bef5750565b51612bd39060020b612abe565b90809297935060020b13612c2d575b5090612bc7612bd992612bbb565b9450612bc7612c1f565b506001600160a01b03612b53565b90612c5890670de0b6b3a7640000612aaf565b90612b36565b6001600160a01b038116612c7157503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a1e575f91612cad575090565b610553915060203d6020116117e3576117d48183610158565b9091906001600160a01b038116612cf357505f808080612ce794865af11590565b612cee5750565b6131ca565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612d495750565b6001600160a01b031661315d565b90612d666014835110156132b0565b602082015160601c916017815110612d9b57601781015190602b81612d926017926020945110156132b0565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111975760011c905b838210612dfd575050610188821515611510565b909250828015612ab9578082049081018091116111975760011c90612de9565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b03161161305d5760018060a01b0316612e5b8160201b90565b80612e6e612e688361336c565b60ff1690565b91608083106130505750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612ffe9060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146130305750905090565b6001600160a01b03613041846133ef565b161161304b575090565b905090565b905081607f031b90612e80565b61334c565b600291820b910b0390627fffff198212627fffff83131761119757565b60020b9060020b908115612ab957627fffff1981145f19831416611197570590565b9060020b9060020b02908160020b91820361119757565b909190156130fc575f8260020b125f146130ef576130ea816130e56130e08261055396613062565b612ad1565b61307f565b6130a1565b6130ea816105539361307f565b905f8160020b125f1461311757906130ea816105539361307f565b8161312191612aec565b60020b5f190190627fffff198212627fffff831317611197576130ea816105539361307f565b8060020b8015612ab957620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561323a57565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561327757565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b156132b757565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af11561131f575f513d61334357506001600160a01b0381163b155b6133235750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561331c565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561021c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137095763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166136ed575b600481166136d1575b600881166136b5575b60108116613699575b6020811661367d575b60408116613661575b60808116613645575b6101008116613629575b610200811661360d575b61040081166135f1575b61080081166135d5575b61100081166135b9575b612000811661359d575b6140008116613581575b6180008116613565575b620100008116613549575b62020000811661352e575b620400008116613513575b62080000166134fa575b5f126134f2575b0160201c90565b5f19046134eb565b6b048a170391f7dc42444e8fa290910260801c906134e4565b6d2216e584f5fa1ea926041bedfe9890920260801c916134da565b916e5d6af8dedb81196699c329225ee6040260801c916134cf565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916134c4565b916f31be135f97d08fd981231505542fcfa60260801c916134b9565b916f70d869a156d2a1b890bb3df62baf32f70260801c916134af565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134a5565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161349b565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91613491565b916ff3392b0822b70005940c7a398e4b70f30260801c91613487565b916ff987a7253ac413176f2b074cf7815e540260801c9161347d565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91613473565b916ffe5dee046a99a2a811c461f1969c30530260801c91613469565b916fff2ea16466c96a3843ec78b326b528610260801c91613460565b916fff973b41fa98c081472e6896dfb254c00260801c91613457565b916fffcb9843d60f6159c9db58835c9266440260801c9161344e565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91613445565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c9161343c565b916ffff97272373d413259a46990580e213a0260801c91613433565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2771:19161:92:-:0;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;3746:38;2771:19161;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;:::-;;;;;9832:14;2771:19161;;:::i;:::-;:::o;:::-;;;;;11111:19;2771:19161;;:::i;:::-;;;;;14725:29;2771:19161;;:::i;:::-;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;8456:32:92;;;:::i;:::-;;2771:19161;;;;;-1:-1:-1;;;;;2771:19161:92;;;;-1:-1:-1;;;2771:19161:92;;;;8498:26;2771:19161;;8498:26;2771:19161;;;;;;;-1:-1:-1;8498:26:92;2771:19161;;;;;-1:-1:-1;2771:19161:92;;;;;;8539:61;2771:19161;;;;;;;;;:::i;:::-;8563:16;8581:18;;2771:19161;8539:61;2771:19161;;8539:61;;;;;:::i;:::-;;;;2771:19161;;;;;;;;;;;;;;;;;;8498:26;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;3234:55;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;1500:62:0;;:::i;:::-;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;;;;;;-1:-1:-1;;;;;;2771:19161:92;3052:40:0;-1:-1:-1;;3052:40:0;2771:19161:92;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;735:10:7;-1:-1:-1;;;;;2771:19161:92;;;2339:24:1;2335:96;;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;-1:-1:-1;2771:19161:92;;735:10:7;2771:19161:92;;;;;;;-1:-1:-1;;;;;2771:19161:92;;3052:40:0;;-1:-1:-1;3052:40:0;2771:19161:92;2335:96:1;2386:34;;;2771:19161:92;2386:34:1;735:10:7;2771:19161:92;;;;2386:34:1;2771:19161:92;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;-1:-1:-1;;2771:19161:92;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;3339:39;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;9363:16;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3080:68:8;9501:23:92;;;;;;;;:::i;:::-;9476:49;;;:::i;:::-;;;;:::i;:::-;;9618:23;;;;:::i;:::-;9588:54;;;:::i;:::-;;;;:::i;:::-;9723:14;;;;;;;:::i;:::-;9715:50;;-1:-1:-1;9723:25:92;;9715:50;:::i;:::-;9832:14;;;;;;;;:::i;:::-;9848:20;;;;;;;;;:::i;:::-;9870:14;;;;;:::i;:::-;2771:19161;;;;3746:38;;;;:::i;:::-;2771:19161;;3746:38;;;;:::i;:::-;9803:82;;;;:::i;:::-;10017:20;;;:::i;:::-;10039:18;;;;2771:19161;10086:9;;10079:4;10059:10;10008:7;;10086:9;;;;:::i;:::-;10188:14;;;;:::i;:::-;10203;;;;:::i;:::-;:25;;;;:::i;:::-;10188:41;;;;:::i;:::-;10160:69;;;:::i;:::-;10325:11;;357:173:37;9723:14:92;357:173:37;;10303:53:92;;;;:::i;:::-;10602:14;;;;;;;;:::i;:::-;10649:20;;;;:::i;:::-;3746:38;;;:::i;:::-;2771:19161;;3746:38;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;;10548:227;;3746:38;9848:20;10548:227;;3746:38;10079:4;10039:18;10548:227;;3746:38;10483:302;;10524:10;10483:302;:::i;:::-;10938:16;;;;:::i;:::-;10977:14;;;;;:::i;:::-;11111:19;;;2771:19161;11162:23;;;;;:::i;:::-;3746:38;;;:::i;:::-;-1:-1:-1;;;;;2771:19161:92;;;3746:38;;2771:19161;3746:38;;;;:::i;:::-;2771:19161;10900:296;;3746:38;9848:20;10900:296;;3746:38;-1:-1:-1;;;;;2771:19161:92;10039:18;10900:296;;3746:38;9832:14;10900:296;;3746:38;2771:19161;3746:38;;;:::i;:::-;9723:14;10900:296;;3746:38;9848:20;2771:19161;11312:24;;2771:19161;11312:24;;;;;;:::i;:::-;;2771:19161;;11312:24;;;;;;;;:::i;:::-;9848:20;2771:19161;-1:-1:-1;;;11293:44:92;;2771:19161;;;;;11293:44;;2771:19161;11293:44;;;:::i;:::-;-1:-1:-1;;;;;2771:19161:92;;;;11293:44;;;-1:-1:-1;11293:44:92;;;;;;;;11476:106;11293:44;-1:-1:-1;11293:44:92;;;2771:19161;;;;;;11476:106;;;;;;:::i;:::-;11700:16;;;;;11684:52;:34;11692:25;3746:38;9832:14;11700:16;;3746:38;2771:19161;;;;;;;;3746:38;-1:-1:-1;;;;;2771:19161:92;;;11684:52;9848:20;2771:19161;-1:-1:-1;;;11684:95:92;;-1:-1:-1;;;2771:19161:92;11684:95;;3746:38;2771:19161;;;;;;3746:38;;2771:19161;;11684:95;;;;;;;12008:294;11684:95;12008:294;11684:95;12073:16;11684:95;-1:-1:-1;11684:95:92;;;2771:19161;11843:17;;:52;;;2771:19161;11839:154;;12073:16;:::i;:::-;2771:19161;9848:20;2771:19161;;;;;;;;;;10059:10;;2241:89:34;;;;2052:83;9832:14:92;2052:83:34;12008:294:92;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;;3080:68:8;9848:20:92;2771:19161;9363:16;2771:19161;;;;;11839:154;;;;;;:::i;:::-;12073:16;:::i;11843:52::-;2771:19161;;;;;;;11864:31;;11843:52;;11684:95;;;;2771:19161;11684:95;2771:19161;11684:95;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11293:44::-;;;;;;-1:-1:-1;11293:44:92;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2771:19161;;;;;;-1:-1:-1;;2771:19161:92;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;2848:69:8;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;3140:41;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;8825:17;2771:19161;;;;;;;;8825:17;2771:19161;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3746:38;;2771:19161;;:::i;:::-;;;;3746:38;2771:19161;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;2771:19161:92;;;-1:-1:-1;;;;;;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;1777:43:1;;-1:-1:-1;1777:43:1;2771:19161:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;:::o;12714:1377::-;12827:11;-1:-1:-1;;;;;2771:19161:92;12805:10;:34;12801:89;;12935:32;;;;;;:::i;:::-;13987:97;13062:29;;;:::i;:::-;13987:97;13511:273;13946:22;13891:27;13216:67;13235:20;;;;2771:19161;13235:20;13257:25;;2771:19161;;;;;;;;;;13216:67;;:::i;:::-;13383:25;;;;;;;;:::i;:::-;2771:19161;;;;;;;;;;;;;;;;;;13709:29;;;;2771:19161;;13709:29;;;;-1:-1:-1;;;;;2771:19161:92;13511:273;;:::i;:::-;13860:29;;;2771:19161;13860:29;;;;-1:-1:-1;;;;;2771:19161:92;13891:27;;;2771:19161;;;13891:27;;2771:19161;-1:-1:-1;;;;;2771:19161:92;13946:22;;:::i;:::-;14057:26;2771:19161;;13891:27;2771:19161;13987:97;;;13235:20;13987:97;;;:::i;:::-;;2771:19161;;13987:97;;;;;;:::i;12801:89::-;12862:17;;;;;;;;3746:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3746:38:92;;;;2771:19161;;-1:-1:-1;;2771:19161:92;3746:38;;;:::o;:::-;;;;;;;:::i;:::-;2771:19161;;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;;;;;-1:-1:-1;3746:38:92;;;;;;:::o;:::-;-1:-1:-1;;3746:38:92;;;;;;;;:::o;:::-;;:::i;:::-;2771:19161;;;3746:38;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;;;;;3746:38;;;;;2771:19161;;3746:38;;;2771:19161;3746:38;;;;;2771:19161;;3746:38;;;;;;;;;2771:19161;;3746:38;;;2771:19161;3746:38;;;;;2771:19161;3746:38;;2771:19161;3746:38::o;:::-;;;;;;;-1:-1:-1;;;;;2771:19161:92;3746:38;;;2771:19161;3746:38;;;;;;;;;2771:19161;;3746:38;;;2771:19161;;;3746:38;;;2771:19161;;;;3746:38;2771:19161;;;;;-1:-1:-1;3746:38:92;;;;;;;;;;;;;;;;;;;;2771:19161;3746:38;;;;;;;;;2771:19161;;;;;;;;;3746:38;;;;;;;;2771:19161;3746:38;;2771:19161;3746:38;2771:19161;;3746:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;2771:19161;;3746:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;;;;;;:::i;:::-;2771:19161;;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;-1:-1:-1;3746:38:92;;;;;;;;2771:19161;;;;;3746:38;:::o;:::-;2771:19161;;3746:38;;;;;;;;;2771:19161;;;;3746:38;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3746:38:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;2771:19161;;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2771:19161;3746:38;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;2771:19161;;;;;;:::i;:::-;3746:38;;;;;;;;;;;;2771:19161;3746:38;;;2771:19161;3746:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2771:19161;;;;3746:38;;;2771:19161;;3746:38;;;2771:19161;3746:38;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;3746:38;;;2771:19161;3746:38;;;;;;;;;:::i;2771:19161::-;;;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2771:19161:92;;;;;;;;1796:162:0;1710:6;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;735:10:7;1855:23:0;1851:101;;1796:162::o;2771:19161:92:-;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;1795:4:90;;;;:::o;:::-;;;;;;;;;1901:6;;;;:::o;:::-;;;;;;;;;2728:647;2850:16;;2771:19161:92;;;2728:647:90;2892:10;;;;:49;;2728:647;2771:19161:92;;;3000:9:90;2771:19161:92;2995:296:90;3011:10;;;;;;3319:29;;;3311:57;1901:6;3319:29;;;3311:57;:::i;3023:3::-;3054:18;;;2771:19161:92;3054:18:90;3215:21;3054:18;;;;3046:53;3054:21;:18;;;:21;:::i;:::-;2771:19161:92;3054:26:90;;3046:53;:::i;:::-;3117:64;1795:4;3125:19;:16;;;:19;:::i;:::-;2771:19161:92;3125:36:90;3117:64;:::i;:::-;3215:18;:21;:::i;:::-;2771:19161:92;1795:4:90;3023:3;2771:19161:92;3000:9:90;;;;2771:19161:92;;;;;;;;;2892:49:90;2916:18;;;;;2771:19161:92;2906:35:90;;2892:49;;2771:19161:92;;;;;;;:::i;:::-;-1:-1:-1;2771:19161:92;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;14326:603;2771:19161;;:::i;:::-;;14600:20;;;;14648:27;;;;2771:19161;;;;;;14725:29;;;2771:19161;;;14648:27;2771:19161;;;;;:::i;:::-;3746:38;;14600:20;14546:224;;3746:38;;;14648:27;14546:224;;3746:38;;;8176:24:60;2771:19161:92;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;;;;;;-1:-1:-1;;;;;2771:19161:92;;;8176:24:60;-1:-1:-1;;14521:11:92;-1:-1:-1;;;;;2771:19161:92;;8210:22:60;;-1:-1:-1;8333:3:60;8310:14;;2771:19161:92;;;8306:25:60;;;;;8377:17;;14600:20:92;8638:24:60;8377:17;;;8615:120;8493:36;8377:17;;8556:213;8377:17;;;:::i;:::-;;2771:19161:92;;8377:17:60;;-1:-1:-1;;;;;2771:19161:92;;;;;448:51:36;;364:138;8493:36:60;2771:19161:92;;;-1:-1:-1;;;;;2771:19161:92;3746:38;;8638:24:60;:::i;:::-;8664:70;;;;1862:10:32;8664:70:60;;8615:120;2771:19161:92;;:::i;:::-;;;;1862:10:32;;;8615:120:60;3746:38:92;;8615:120:60;;;3746:38:92;-1:-1:-1;;;;;2771:19161:92;14648:27;8615:120:60;;3746:38:92;;8615:120:60;14648:27:92;2771:19161;3746:38;;;;;;;8556:213:60;;;;;;;:::i;:::-;;;-1:-1:-1;8556:213:60;;;;;;;;-1:-1:-1;8556:213:60;;;8664:70;-1:-1:-1;2771:19161:92;;8544:225:60;8855:72;;;;2771:19161:92;;;;;;8855:72:60;9043:50;;;;14600:20:92;9056:17:60;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;8333:3:60;2771:19161:92;8291:13:60;;;;;;;;;9043:50;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;9043:50:60;;8855:72;2052:83:34;;2771:19161:92;;;;;;8855:72:60;;8556:213;2771:19161:92;8556:213:60;;;;;14600:20:92;8556:213:60;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8664:70;2042:49:32;8664:70:60;;;8306:25;-1:-1:-1;;;;;2771:19161:92;;;1862:10:32;;-1:-1:-1;8306:25:60;;-1:-1:-1;14833:89:92;;-1:-1:-1;8306:25:60;;-1:-1:-1;9159:39:60;;-1:-1:-1;;;;;2771:19161:92;14600:20;9159:21:60;;3746:38:92;;9159:39:60;14648:27:92;9208:22:60;;3746:38:92;2771:19161;;14868:25;;;;;2771:19161;-1:-1:-1;;;;;2771:19161:92;;;14841:52;;14833:89;:::i;15282:437::-;;;;-1:-1:-1;2771:19161:92;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3746:38;;;;;;;;;15553:24;;;:::i;:::-;;2771:19161;;15553:24;;-1:-1:-1;;;;;2771:19161:92;;;;;15660:52;;;15282:437::o;15913:204::-;357:173:37;16057:53:92;15913:204;357:173:37;16079:11:92;16057:53;:::i;:::-;16030:80;;;15913:204;:::o;2771:19161::-;;;;3746:38;2771:19161;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2771:19161:92;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;3746:38;;2771:19161;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2771:19161:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;16831:1841;;;;17327:115;16831:1841;;;;;;2771:19161;;:::i;:::-;;17327:115;;;:::i;:::-;17292:150;;;17509:12;;;2771:19161;17509:23;;:40;;;16831:1841;17505:1161;;;-1:-1:-1;;;;;17636:11:92;2771:19161;;;;17636:70;;;;;2771:19161;;;3746:38;;;;;17636:70;;17689:4;;;17636:70;17689:4;;17636:70;;;;;:::i;:::-;;;;;;;;;;2771:19161;17636:70;;;17505:1161;17813:25;;;;:41;;;;;;;;;17937:131;;17813:41;18228:12;;;;18242;18159:103;18242:12;;;;2771:19161;;;3746:38;;;;;;;;;;18159:103;;17636:70;18159:103;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;18159:18;-1:-1:-1;;;;;2771:19161:92;18159:103;;;;;;;2771:19161;18159:103;;;17813:41;2771:19161;18293:35;2771:19161;;18293:35;:::i;:::-;18375:9;2771:19161;18407:3;2771:19161;;18386:19;;;;;18476:11;;2771:19161;18476:11;;;:::i;:::-;2771:19161;18499:19;:16;2771:19161;18499:16;;;:19;:::i;:::-;2771:19161;18532:21;:18;2771:19161;18532:18;;;:21;:::i;:::-;2771:19161;;;;:::i;:::-;3746:38;;;18242:12;18453:102;;3746:38;2771:19161;18453:102;;3746:38;18434:121;;;;:::i;:::-;;;;;;:::i;:::-;;2771:19161;18375:9;;18386:19;;;;;;16831:1841::o;18159:103::-;;;;;;2771:19161;18159:103;;;;;;:::i;:::-;;;;;:::i;:::-;;;;17937:131;2771:19161;;-1:-1:-1;;;17986:67:92;;-1:-1:-1;;;;;18022:18:92;2771:19161;17636:70;17986:67;;2771:19161;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;17986:67;;2771:19161;;;;;;;17986:67;;;;;;;2771:19161;17986:67;;;17937:131;;;;17986:67;;;;;;;;;;;;;:::i;:::-;;;;;17813:41;;;;;17636:70;;;;;;;:::i;:::-;;;:::i;:::-;;;;17505:1161;18634:21;;;;;;;;;:::i;:::-;17505:1161;16831:1841::o;17509:40::-;-1:-1:-1;;;;;;2771:19161:92;;17536:13;;17509:40;;19018:431;;;;-1:-1:-1;;;;;2771:19161:92;;4998:58:36;;19678:24:92;;19718:11;-1:-1:-1;;;;;2771:19161:92;19718:26;;;;;2771:19161;;-1:-1:-1;;;19718:26:92;;-1:-1:-1;;;;;2771:19161:92;;19718:26;;;2771:19161;-1:-1:-1;2771:19161:92;;;-1:-1:-1;19718:26:92;;;;;;;;19993:22;20080:20;19718:26;19941:124;19718:26;;;;;19673:593;19826:40;19949;19826;;;;;:::i;:::-;19920:6;;;;;;:::i;:::-;19949:40;:::i;:::-;19993:22;;:::i;:::-;19949:66;19941:124;:::i;:::-;19718:26;2771:19161;;3746:38;;;;;;;20080:20;;;;;;;;;;19673:593;;;-1:-1:-1;;;;;2771:19161:92;;19333:110;;19018:431;;;:::o;19333:110::-;19368:11;-1:-1:-1;;;;;2771:19161:92;19368:64;;;;;2771:19161;;-1:-1:-1;;;19368:64:92;;2771:19161;19351:1;;2771:19161;;;;19351:1;;2771:19161;;19368:64;;3746:38;;-1:-1:-1;;;;;2771:19161:92;19368:64;;;;:::i;:::-;;;;;;;;;;;19018:431;:::o;19368:64::-;;;19351:1;19368:64;;;:::i;20080:20::-;;;;;;;;;;;;;:::i;:::-;;;;;19718:26;;;;;;;:::i;:::-;;;;19673:593;2771:19161;20180:11;-1:-1:-1;;;;;2771:19161:92;20180:26;;;;;2771:19161;;-1:-1:-1;;;20180:26:92;;-1:-1:-1;;;;;2771:19161:92;;;;20180:26;;;2771:19161;-1:-1:-1;2771:19161:92;;;-1:-1:-1;20180:26:92;;;;;;;;20220:35;20180:26;;;19673:593;2771:19161;20180:26;2771:19161;;3746:38;;;;;;;20220:35;;;;;;;;;;19673:593;;;;20220:35;;;;;;;;;;;;;:::i;:::-;;;;;20180:26;;;;;;;:::i;:::-;;;;2771:19161;;;;:::o;:::-;;;;;;;;;;21152:17;2771:19161;;;;;;21152:17;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;;-1:-1:-1;2771:19161:92;:::o;:::-;21720:29;2771:19161;;;;;;21720:29;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;;-1:-1:-1;2771:19161:92;:::o;21031:817::-;21152:17;2771:19161;21266:20;;;21262:33;;21350:16;;;2771:19161;21350:42;:90;;;21031:817;21342:126;;;:::i;:::-;21152:27;21565:19;;;;;;21031:817;;;:::o;21586:3::-;21638:16;:19;2771:19161;21638:16;;;:19;:::i;:::-;2771:19161;;21661:30;;;:::i;:::-;2771:19161;;;;;;;;;21638:53;:114;;;21586:3;21609:208;;;:::i;:::-;2771:19161;21554:9;;21638:114;21695:18;21609:208;21695:21;:18;;;;;:21;:::i;:::-;2771:19161;;21720:32;;;:::i;2771:19161::-;21695:57;21638:114;;;;21350:90;-1:-1:-1;21396:18:92;;;;2771:19161;21396:44;;21350:90;;21262:33;21288:7;;:::o;2771:19161::-;;;;:::o;:::-;;;;;;;;;2969:890:60;2771:19161:92;;3092:19:60;3088:83;;2771:19161:92;;3289:14:60;;3404:31;3285:313;2771:19161:92;;;;;;;;;;3635:10:60;2771:19161:92;;3656:196:60;;-1:-1:-1;;;;;2771:19161:92;;;;;3677:55:60;;;:114;;;;3285:313;3656:196;;;:::i;3677:114::-;2771:19161:92;3771:19:60;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;3736:55:60;;-1:-1:-1;3677:114:60;;;;3285:313;3554:33;;;;:::i;:::-;3285:313;;3088:83;3127:7;;;:::o;2771:19161:92:-;;;;;;:::o;:::-;;;;;;;;;;;;;5439:575:60;;;;;;;;-1:-1:-1;;;;;2771:19161:92;;;;5705:23:60;;;5697:82;5705:23;;;;;5697:82;:::i;5603:405::-;5859:13;;;;;2771:19161:92;;-1:-1:-1;;;;;;2771:19161:92;;5958:23:60;;;:::i;:::-;5927:70;;;;;;2771:19161:92;;-1:-1:-1;;;5927:70:60;;-1:-1:-1;;;;;2771:19161:92;;;5927:70:60;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;5632:1:60;;2771:19161:92;;;5632:1:60;2771:19161:92;;;;5927:70:60;2771:19161:92;;;;;5632:1:60;2771:19161:92;5632:1:60;2771:19161:92;;;;;5632:1:60;2771:19161:92;;;;;;;;;;3746:38;2771:19161;:::o;1580:996:30:-;14953:51;1580:996;1892:27;1580:996;;2771:19161:92;;14953:51:30;;;2771:19161:92;;;414:1:30;2771:19161:92;398:19:30;;2771:19161:92;;14953:51:30;;;;;;:::i;:::-;2771:19161:92;14943:62:30;;2771:19161:92;;;3746:38;;;;;;;;1892:27:30;;;;;2771:19161:92;;;;;;;;1892:27:30;;;-1:-1:-1;;;;;2771:19161:92;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;;1580:996;-1:-1:-1;;;;;;2147:423:30;;;2771:19161:92;2147:423:30;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;;14953:51;1892:27;14953:51;1892:27;;;;;;;:::i;:::-;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2771:19161:92;;;;;;;;;;;;;;;;;;;;;;;:::o;6425:1227:60:-;;;;6582:14;;2771:19161:92;6582:26:60;6578:163;;6822:20;;;;2771:19161:92;;6822:20:60;;7529:47;;-1:-1:-1;;;;;2771:19161:92;;6818:156:60;;6425:1227;-1:-1:-1;7131:14:60;;7170:16;;;2771:19161:92;7131:14:60;;7170:16;7443:34;;2771:19161:92;;-1:-1:-1;;;;;2771:19161:92;7210:18:60;;;;2771:19161:92;7082:247:60;2771:19161:92;;3746:38;;;:::i;:::-;;;;-1:-1:-1;;;;;2771:19161:92;7082:247:60;;;3746:38:92;;7082:247:60;7210:18;7082:247;;3746:38:92;-1:-1:-1;7170:16:60;7082:247;;3746:38:92;2771:19161;-1:-1:-1;;;;;2771:19161:92;;;7443:34:60;:59;;2771:19161:92;7443:59:60;;7210:18;2771:19161:92;3746:38;;;;;;;;;7529:47:60;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19161:92;7529:47:60;;;;;;7605:40;7529:47;-1:-1:-1;7529:47:60;;;7443:59;7512:64;7630:14;;7605:40;:::i;7529:47::-;;;;6822:20;7529:47;6822:20;7529:47;;;;;;;:::i;:::-;;;;7443:59;;-1:-1:-1;7443:59:60;;;6818:156;6944:18;;;2771:19161:92;6944:18:60;;-1:-1:-1;;;;;2771:19161:92;;;;;6944:18:60;:::i;:::-;6818:156;;;6578:163;-1:-1:-1;6689:18:60;;;2771:19161:92;6709:20:60;;;;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;:::o;20499:401::-;;2771:19161;;;;;20616:31;;;20612:68;;20802:18;-1:-1:-1;;;;;2771:19161:92;20802:91;;;;;20879:1;2771:19161;;20802:91;2771:19161;;;;;3746:38;;;;;;;;20802:91;;;;;2771:19161;;:::i;:::-;20761:30;;;2771:19161;;;;;;;;;;;;;;;;;;;;;;20802:91;;;;;;;;20499:401;:::o;2771:19161::-;3746:38;;-1:-1:-1;;;;;;2771:19161:92;;;;;;;:::o;1862:10:32:-;;;;;2771:19161:92;1862:10:32;;:::i;:::-;;;2771:19161:92;;1862:10:32;;;2771:19161:92;1862:10:32;;;;;;;2771:19161:92;1862:10:32;;;-1:-1:-1;;;;;2771:19161:92;1862:10:32;;;2771:19161:92;1862:10:32;;;;;;;-1:-1:-1;1862:10:32;;;2771:19161:92;;;1862:10:32:o;1979::70:-;;2771:19161:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;1979:10:70;2771:19161:92;1979:10:70;2771:19161:92;;1979:10:70;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2771:19161:92;;;;;;1979:10:70;;;;;;;:::o;:::-;-1:-1:-1;;;;;2771:19161:92;;;;;;1979:10:70;;2771:19161:92;1979:10:70;;;;:::o;4274:2599:90:-;;;;;;;;;2771:19161:92;;:::i;:::-;4518:17:90;2771:19161:92;;-1:-1:-1;;;;;2771:19161:92;;4572:14:90;4568:79;;2042:49:32;1862:10;4977:65:90;;;;-1:-1:-1;;;;;;2771:19161:92;;;;;;4991:24:90;;4977:65;4973:167;;5171:16;;;;;;;2771:19161:92;5215:25:90;;;;:::i;:::-;5205:35;;5260:23;;;:::i;:::-;5250:7;;;:33;5307:25;;;:::i;:::-;5293:11;;;:39;5358:25;;;:::i;:::-;5342:13;;;:41;5433:13;2771:19161:92;5462:9:90;2771:19161:92;5457:1073:90;5473:14;;;;;;6540:293;;;;;;;;;;;5250:7;;;;6540:293;;5293:11;;;;6540:293;;5342:13;;;6540:293;;4274:2599;:::o;5489:3::-;5564:18;;;;;;;5528:73;5564:21;:18;5250:7;5564:18;;;;;;:21;:::i;:::-;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;5528:73:90;:::i;:::-;5619:14;;;5615:28;;5806:31;;-1:-1:-1;;;;;2771:19161:92;;;5806:31:90;:::i;:::-;2771:19161:92;5999:31:90;;-1:-1:-1;;;;;2771:19161:92;;;5999:31:90;:::i;:::-;6123:16;;;;;;:19;;;;:::i;:::-;2771:19161:92;6064:79:90;;;;;;;:::i;:::-;6158:7;;;;:26;;;;:::i;:::-;3746:38:92;5250:7:90;;6198;:27;;;;:::i;:::-;;;;1979:10:70;2771:19161:92;;1979:10:70;;;6198:27:90;6260:16;;;;;:19;;;;:::i;:::-;2771:19161:92;5293:11:90;;;6239;:40;;;;:::i;:::-;3746:38:92;5564:18:90;;;5250:7;5564:18;;6316;:21;;;;:::i;:::-;2771:19161:92;5342:13:90;;;6293;:44;;;;:::i;:::-;3746:38:92;4906:1:90;2771:19161:92;5489:3:90;4906:1;5489:3;5462:9;2771:19161:92;5462:9:90;;;;;;;;5615:28;5635:8;;;;4906:1;5635:8;;;4973:167;-1:-1:-1;5095:34:90;;;-1:-1:-1;;;;5095:34:90:o;4977:65::-;-1:-1:-1;;;;;2771:19161:92;;;;;;5018:24:90;;;-1:-1:-1;4977:65:90;;4568:79;-1:-1:-1;2771:19161:92;;-1:-1:-1;2771:19161:92;;4602:34:90;-1:-1:-1;;;;;4602:34:90:o;2771:19161:92:-;;677:2:74;2771:19161:92;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;10716:597:60;2771:19161:92;;10824:16:60;10820:64;;2771:19161:92;;;;;;;;11065:101:60;2771:19161:92;;;;;;;;1229:40:75;-1:-1:-1;11072:30:60;;2771:19161:92;;3746:38;;;;;;;;;;667:12:74;;659:50;667:12;;;;:::i;:::-;:23;;659:50;:::i;:::-;719:53;727:16;;;;;:::i;719:53::-;782:63;2771:19161:92;;807:16:74;;;;:::i;:::-;-1:-1:-1;790:33:74;782:63;:::i;:::-;889:2430;2771:19161:92;;889:2430:74;;;;2771:19161:92;889:2430:74;;;;;;;11065:101:60;;889:2430:74;;;;677:2;889:2430;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;889:2430:74;;677:2;889:2430;-1:-1:-1;;889:2430:74;;;11065:101:60;;889:2430:74;;;;;;;;;;;;;;;;11072:30:60;;;;;;11277:29;11072:30;;11277:29;:::i;:::-;11260:46;;;10716:597;:::o;10820:64::-;10856:17;2771:19161:92;10856:17:60;:::o;288:164:12:-;-1:-1:-1;;;;;368:25:12;;364:50;;-1:-1:-1;;;;;2771:19161:92;;288:164:12:o;364:50::-;402:12;;;;;;;;3146:225:6;2771:19161:92;;-1:-1:-1;;;3265:39:6;;3289:4;3265:39;;;2771:19161:92;-1:-1:-1;;;;;2771:19161:92;;;;;;;3146:225:6;;2771:19161:92;;;;;;3265:39:6;;2771:19161:92;;;;3265:39:6;;;;;;;-1:-1:-1;3265:39:6;;;3146:225;2771:19161:92;;;;;;;;5199:47:6;-1:-1:-1;2771:19161:92;;5199:47:6;;;;3746:38:92;;;;5199:47:6;;2771:19161:92;;;;;;;5199:47:6;;;2771:19161:92;;;;;;5199:47:6;;;;;;:::i;:::-;9770:199;;;;;;;-1:-1:-1;9770:199:6;;;;9985:80;;3146:225;-1:-1:-1;5261:45:6;;-1:-1:-1;5261:45:6;5257:201;;3146:225;;;:::o;5257:201::-;2771:19161:92;;-1:-1:-1;;;5199:47:6;5349:43;;;-1:-1:-1;;;;;2771:19161:92;;;5199:47:6;5349:43;;2771:19161:92;5389:1:6;2771:19161:92;;;;5434:12:6;;5349:43;;;2771:19161:92;;;;5349:43:6;2771:19161:92;5349:43:6;;;:::i;:::-;5434:12;:::i;9985:80::-;9997:15;;;-1:-1:-1;9997:15:6;;-1:-1:-1;5261:45:6;-1:-1:-1;;;;;2771:19161:92;;10015:26:6;:30;;9997:67;9985:80;;;9997:67;10063:1;5261:45;10048:16;;9997:67;;3265:39;;;;;2771:19161:92;3265:39:6;2771:19161:92;3265:39:6;;;;;;;:::i;:::-;;;;;858:4141:66;2771:19161:92;;;;-1:-1:-1;;2771:19161:92;;1464:147:66;;;;;;;;;;;;1736:19;;1901:6:90;1736:19:66;2771:19161:92;;;1837:10:66;1833:177;;2771:19161:92;2341:95:66;1901:6:90;2341:95:66;;2508:145;;;;;;2771:19161:92;;2508:145:66;;3094:82;;3480:21;2771:19161:92;858:4141:66;:::o;1833:177::-;1867:98;;1901:6:90;1867:98:66;;;1982:13;:::o;858:4141::-;2771:19161:92;;;;-1:-1:-1;;2771:19161:92;;1464:147:66;;;;;;;;;;;;1736:19;;2036:3:90;1736:19:66;2771:19161:92;;;1837:10:66;1833:177;;2771:19161:92;2341:95:66;2036:3:90;2341:95:66;;2508:145;;;;;;2771:19161:92;;2508:145:66;;3094:82;;3480:21;2771:19161:92;858:4141:66;:::o;1833:177::-;1867:98;;2036:3:90;1867:98:66;;;1982:13;:::o;2036:3:90:-;2771:19161:92;;;2036:3:90;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;2771:19161:92;;-1:-1:-1;;2036:3:90;;;;;;;:::o;:::-;2771:19161:92;;;2036:3:90;;;;;-1:-1:-1;;2036:3:90;;;;;:::o;:::-;;2771:19161:92;;;;;2036:3:90;;;;;;;;;;;;:::o;7348:1541::-;;;;;7650:23;7830:75;7348:1541;;7561:53;1795:4;7569:25;;7561:53;:::i;:::-;7650:23;:::i;:::-;7687:12;;;7683:120;;7348:1541;-1:-1:-1;;;;;2771:19161:92;7830:75:90;:::i;:::-;-1:-1:-1;;;;;7919:26:90;;7915:58;;7348:1541;8198:73;;8255:15;;8134:44;;-1:-1:-1;;;;;2771:19161:92;8134:44:90;:::i;:::-;8255:15;;2036:3;;;;2771:19161:92;;;;2036:3:90;8198:73;;;:::i;:::-;8298:39;2036:3;;;2771:19161:92;;;;2036:3:90;8298:39;:::i;:::-;8363:8;;;;:::i;:::-;2771:19161:92;;;;;;8386:17:90;;8382:136;8386:17;;;8419;;;;8552:74;8652:68;8419:17;8382:136;;2036:3;;2771:19161:92;;8552:74:90;;;:::i;:::-;8671:48;;;;;2036:3;2771:19161:92;;2036:3:90;8671:48;8652:68;:::i;:::-;8730:153;;;;2771:19161:92;;;;;;8765:17:90;8761:40;;8730:153;7348:1541::o;8761:40::-;8784:17;-1:-1:-1;19018:431:92:o;8730:153:90:-;2771:19161:92;;;;;;8836:17:90;8832:40;;8730:153;7348:1541::o;8671:48::-;2036:3;8703:16;;2771:19161:92;;8703:16:90;:::i;8382:136::-;2771:19161:92;;;;;;;;-1:-1:-1;8453:65:90;;8382:136;;;8552:74;8652:68;8382:136;;;8453:65;8490:17;-1:-1:-1;8552:74:90;8453:65;;7915:58;-1:-1:-1;;;;;;7915:58:90;;7683:120;7733:41;7732:60;7733:41;2771:19161:92;7732:60:90;:::i;:::-;7683:120;;;4633:271:36;-1:-1:-1;;;;;2771:19161:92;;4732:24:36;;4779:13;;4772:20;:::o;4728:170::-;2771:19161:92;;-1:-1:-1;;;4830:57:36;;-1:-1:-1;;;;;2771:19161:92;;;4830:57:36;;;2771:19161:92;;;;;;4830:57:36;;2771:19161:92;;;4830:57:36;;;;;;;2771:19161:92;4830:57:36;;;4823:64;;:::o;4830:57::-;;;;2771:19161:92;4830:57:36;2771:19161:92;4830:57:36;;;;;;;:::i;1472:2873::-;;;;-1:-1:-1;;;;;2771:19161:92;;1769:24:36;;1809:163;-1:-1:-1;1809:163:36;;;2085:8;1809:163;;;;2085:8;;2771:19161:92;2085:8:36;2081:127;;1765:2574;1472:2873::o;2081:127::-;2163:29;:::i;1765:2574::-;2238:1774;;;-1:-1:-1;;;2238:1774:36;;-1:-1:-1;;;;;2238:1774:36;;;;;;;;;;;;;;;;-1:-1:-1;;2238:1774:36;-1:-1:-1;2238:1774:36;;-1:-1:-1;2238:1774:36;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;-1:-1:-1;;;;;2771:19161:92;4268:28:36;:::i;1925:240:75:-;;3518:62:74;3473:2;2771:19161:92;;3526:28:74;;3518:62;:::i;:::-;3620:119;;;;;;2771:19161:92;;;;3944:27:74;2771:19161:92;;;4032:81:74;;;;2771:19161:92;;3518:62:74;2771:19161:92;;3620:119:74;2771:19161:92;;3526:28:74;;3518:62;:::i;:::-;3620:119;;;;;1925:240:75;:::o;2771:19161:92:-;;;-1:-1:-1;;;2771:19161:92;;3620:119:74;2771:19161:92;;;;3473:2:74;2771:19161:92;;;;-1:-1:-1;;;2771:19161:92;;;;;;;9171:307:90;;9260:17;9311:1;2771:19161:92;;;;;;;9311:1:90;2771:19161:92;9328:95:90;9335:10;;;;;;9440:11;;9432:39;9440:11;;;9432:39;:::i;9328:95::-;9361:10;;-1:-1:-1;9361:10:90;2036:3;;;;;;;2771:19161:92;;;;;;;;9311:1:90;2771:19161:92;9328:95:90;;;7772:4824:70;2391:66;-1:-1:-1;;2771:19161:92;;-1:-1:-1;;;;;2771:19161:92;8327:79:70;8323:168;;2771:19161:92;;;;;;8521:27:70;;2771:19161:92;;2391:66:70;;8521:27;;8594:43;8608:29;;;:::i;:::-;2771:19161:92;;2391:66:70;;8594:43;8656:10;8663:3;8656:10;;8663:3;;-1:-1:-1;;;2771:19161:92;;;;8652:83:70;-1:-1:-1;;2391:66:70;2771:19161:92;;8805:196:70;;;;;;;2771:19161:92;8805:196:70;;9014;;;8805;9014;;2771:19161:92;9014:196:70;;9223;;;8805;9223;;2771:19161:92;9223:196:70;;9432;;;8805;9432;;2771:19161:92;9432:196:70;;9641;;;8805;9641;;2771:19161:92;9641:196:70;;9850;;;8805;9850;;2771:19161:92;9850:196:70;;10059;;;;8805;10059;;2771:19161:92;10059:196:70;;10268;;;;8805;10268;;2771:19161:92;10268:196:70;;10477;;;;8805;10477;;2771:19161:92;10477:196:70;;10686;;;;8805;10686;;2771:19161:92;10686:196:70;;10895;;;;8805;10895;;2771:19161:92;10895:196:70;;11104;;;;8805;11104;;2771:19161:92;11104:196:70;;11313;;;;;8805;11313;;2771:19161:92;11313:196:70;;11522:165;;;;;;11313:196;;;;;11104;;;;;10895;;;;;10686;;;;;10477;;;;;10268;2771:19161:92;10268:196:70;;;;;;10059;2771:19161:92;10059:196:70;;;;;;9850;2771:19161:92;9850:196:70;;;;;;9641;2771:19161:92;9641:196:70;;;;;;9432;2771:19161:92;9432:196:70;;;;;;9223;2771:19161:92;9223:196:70;;;;;;9014;2771:19161:92;9014:196:70;;;;;;8805;2771:19161:92;8805:196:70;;;;;;;9014;9223;9432;9641;9850;10059;10268;10477;10686;10895;11104;11313;11522:165;11732:24;2391:66;;;;;11932:62;;2771:19161:92;2391:66:70;;;11932:62;2771:19161:92;;2391:66:70;12346:39;2391:66;2771:19161:92;2391:66:70;2771:19161:92;;12416:163:70;2771:19161:92;;;;;;12416:17:70;:163;:17;;;:163;;;7772:4824;:::o;12416:163::-;-1:-1:-1;;;;;12478:26:70;;;:::i;:::-;2771:19161:92;12478:42:70;:101;;;7772:4824;:::o;12478:101::-;;;2771:19161:92;:::o;8652:83:70:-;2771:19161:92;;;8725:3:70;2771:19161:92;;8652:83:70;;;8323:168;8463:12;:::i;2771:19161:92:-;;;;;;;;;-1:-1:-1;;2771:19161:92;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;2771:19161:92;;-1:-1:-1;;2771:19161:92;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;7790:949:58:-;;;;7908:825;;;2771:19161:92;;;;7978:8:58;7974:349;2771:19161:92;;;8117:38:58;8118:18;:22;:18;;8116:54;8118:18;;:::i;:::-;:22;:::i;:::-;8117:38;:::i;:::-;8116:54;:::i;7974:349::-;8275:18;;8274:34;8275:18;;:::i;7908:825::-;2771:19161:92;;;;;8393:8:58;8389:334;2771:19161:92;;;8519:18:58;;;8518:34;8519:18;;:::i;8389:334::-;8656:18;;;;:::i;:::-;2771:19161:92;;-1:-1:-1;;2771:19161:92;;-1:-1:-1;;2771:19161:92;;;;;;;;8655:38:58;;8654:54;8655:38;;:::i;2533:168:70:-;2771:19161:92;;;1434:6:70;;;;;;;2771:19161:92;;2533:168:70;:::o;3508:1663:22:-;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;;;3741:1424:22;;;;;;;;;2771:19161:92;3741:1424:22;2771:19161:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;;;4268:28:36;;;3741:1424:22;;;;;;;3508:1663;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;2771:19161:92;3741:1424:22;2771:19161:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:36;;;3741:1424:22;;;;;;;2771:19161:92;;;;:::o;:::-;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2771:19161:92;;;;;;;;;;;;-1:-1:-1;;;2771:19161:92;;;;;;;8370:720:6;;-1:-1:-1;8507:421:6;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:6;;8942:15;;-1:-1:-1;;;;;;2771:19161:92;;8960:26:6;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:6;;;-1:-1:-1;;;;;2771:19161:92;;;;9033:40:6;2771:19161:92;;;9033:40:6;8942:68;9009:1;8994:16;;8942:68;;1793:259:64;-1:-1:-1;;;1869:177:64;;;;-1:-1:-1;;;;;1869:177:64;;;;;;;;;769:648:63;858:5;;2771:19161:92;;875:536:63;;;-1:-1:-1;;;;;875:536:63;-1:-1:-1;875:536:63;;;;;-1:-1:-1;;;;;875:536:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:648::o;3258:4054:70:-;3406:459;;;;;;;;;;1434:6;3883:35;;3879:78;;6533:763;4465:13;;4492:160;;;;;2771:19161:92;4492:160:70;;;4669:13;3406:459;4669:13;;4665:83;;3258:4054;4776:3;4766:13;;4762:83;;3258:4054;4873:3;4863:13;;4859:83;;3258:4054;4970:4;4960:14;;4956:84;;3258:4054;5068:4;5058:14;;5054:84;;3258:4054;5166:4;5156:14;;5152:84;;3258:4054;4492:160;5254:14;;5250:84;;3258:4054;5362:5;5352:15;;5348:85;;3258:4054;5461:5;5451:15;;5447:85;;3258:4054;5560:5;5550:15;;5546:85;;3258:4054;5659:5;5649:15;;5645:85;;3258:4054;5758:6;5748:16;;5744:86;;3258:4054;5858:6;5848:16;;5844:86;;3258:4054;5958:6;5948:16;;5944:86;;3258:4054;6058:6;6048:16;;6044:86;;3258:4054;6158:7;6148:17;;6144:86;;3258:4054;6258:7;6248:17;;6244:85;;3258:4054;6357:7;6347:17;;6343:83;;3258:4054;6454:7;6444:17;6440:78;;3258:4054;-1:-1:-1;;6533:763:70;;3258:4054;6533:763;5068:4;6533:763;3258:4054;:::o;6533:763::-;-1:-1:-1;;6533:763:70;;;6440:78;6485:25;2771:19161:92;;;;;;6440:78:70;;6343:83;6388:30;2771:19161:92;;;;;;6343:83:70;;6244:85;2771:19161:92;6289:32:70;2771:19161:92;;;6244:85:70;;;6144:86;2771:19161:92;6189:33:70;2771:19161:92;;;6144:86:70;;;6044;2771:19161:92;6088:34:70;2771:19161:92;;;6044:86:70;;;5944;2771:19161:92;5988:34:70;2771:19161:92;;;5944:86:70;;;5844;2771:19161:92;5888:34:70;2771:19161:92;;;5844:86:70;;;5744;2771:19161:92;5788:34:70;2771:19161:92;;;5744:86:70;;;5645:85;2771:19161:92;5688:34:70;2771:19161:92;;;5645:85:70;;;5546;2771:19161:92;5589:34:70;2771:19161:92;;;5546:85:70;;;5447;2771:19161:92;5490:34:70;2771:19161:92;;;5447:85:70;;;5348;2771:19161:92;5391:34:70;2771:19161:92;;;5348:85:70;;;5250:84;2771:19161:92;5292:34:70;2771:19161:92;;;5250:84:70;;;5152;2771:19161:92;5194:34:70;2771:19161:92;;;5152:84:70;;;5054;2771:19161:92;5096:34:70;2771:19161:92;;;5054:84:70;;;4956;2771:19161:92;4998:34:70;2771:19161:92;;;4956:84:70;;;4859:83;2771:19161:92;4900:34:70;2771:19161:92;;;4859:83:70;;;4762;2771:19161:92;4803:34:70;2771:19161:92;;;4762:83:70;;;4665;2771:19161:92;4706:34:70;2771:19161:92;;;4665:83:70;;;3879:78;3952:4;3920:20;;;1552:143:64;;;;;;;;","linkReferences":{},"immutableReferences":{"16555":[{"start":1895,"length":32},{"start":2700,"length":32},{"start":3976,"length":32},{"start":5757,"length":32},{"start":6321,"length":32},{"start":6899,"length":32},{"start":7515,"length":32},{"start":7722,"length":32},{"start":7902,"length":32}],"16559":[{"start":992,"length":32},{"start":7069,"length":32},{"start":7306,"length":32},{"start":9222,"length":32}],"16563":[{"start":1496,"length":32},{"start":2019,"length":32}],"16567":[{"start":1802,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","getLimitOrderConfig()":"e3e8580c","msgSender()":"d737d0c7","owner()":"8da5cb5b","pendingOwner()":"e30c3978","poolManager()":"dc4c90d3","renounceOwnership()":"715018a6","setLimitOrderConfig((uint256[],uint256[]))":"18ed2974","swapRouter()":"c31c9c07","swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":"c48677f4","transferOwnership(address)":"f2fde38b","unlockCallback(bytes)":"91dd7346","zoraLimitOrderBook()":"6baaa167"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"zoraLimitOrderBook_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permit2_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyV4Route\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientInputCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLimitOrderConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMultiple\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPercent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPoolManager\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsafeCast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"V3RouteDoesNotConnectToV4RouteStart\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroSwapDelta\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"name\":\"LimitOrderConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct PoolKey\",\"name\":\"poolKey\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickBeforeSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickAfterSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount0\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount1\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"multiple\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct SwapWithLimitOrders.CreatedOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"SwapWithLimitOrdersExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLimitOrderConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"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\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setLimitOrderConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"limitOrderConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"inputCurrency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"v3Route\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey[]\",\"name\":\"v4Route\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct SwapWithLimitOrders.SwapWithLimitOrdersParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swapWithLimitOrders\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraLimitOrderBook\",\"outputs\":[{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"oveddan\",\"details\":\"This contract uses the poolManager unlock/callback pattern to execute swaps, place limit orders based on the tick range crossed during the swap, and attempt to fill those orders in a single transaction. Users call swapWithLimitOrders() directly, which triggers the unlock callback flow. Uses Permit2 for token approvals, matching the universal-router pattern.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"params\":{\"amount0\":\"The amount of currency0 swapped (negative = paid, positive = received)\",\"amount1\":\"The amount of currency1 swapped (negative = paid, positive = received)\",\"orders\":\"Array of created orders with their configuration. Only includes orders that were actually created (skipped rungs due to rounding are omitted).\",\"sqrtPriceX96\":\"The sqrt price after the swap, used for USD price computation\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"params\":{\"owner_\":\"The owner address\",\"permit2_\":\"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)\",\"poolManager_\":\"The Uniswap V4 pool manager\",\"swapRouter_\":\"The Uniswap V3 swap router\",\"zoraLimitOrderBook_\":\"The limit order book contract\"}},\"getLimitOrderConfig()\":{\"returns\":{\"_0\":\"The current limit order configuration\"}},\"msgSender()\":{\"returns\":{\"_0\":\"The address of the message sender.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"details\":\"Only callable by the owner\",\"params\":{\"config\":\"The new limit order configuration\"}},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"params\":{\"params\":\"The swap and limit order parameters\"},\"returns\":{\"delta\":\"The balance delta from the swap\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"unlockCallback(bytes)\":{\"details\":\"This function executes V4 swaps and settles coins to recipient\",\"params\":{\"data\":\"Encoded CallbackData\"},\"returns\":{\"_0\":\"Encoded UnlockResult containing coin amount and pool info\"}}},\"title\":\"SwapWithLimitOrders\",\"version\":1},\"userdoc\":{\"errors\":{\"EmptyV4Route()\":[{\"notice\":\"Error thrown when v4Route is empty\"}],\"InsufficientOutputAmount()\":[{\"notice\":\"Error thrown when final swap output is below minimum\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidLimitOrderConfig()\":[{\"notice\":\"Error thrown when config does not match canonical config\"}],\"InvalidMultiple()\":[{\"notice\":\"A multiple is \\u2264 1.0x\"}],\"InvalidPercent()\":[{\"notice\":\"A percentage is zero\"}],\"LengthMismatch()\":[{\"notice\":\"Multiples and percentages arrays have different lengths\"}],\"OnlyPoolManager()\":[{\"notice\":\"Error thrown when caller is not the pool manager\"}],\"PercentOverflow()\":[{\"notice\":\"Percentages sum exceeds 100%\"}],\"UnsafeCast()\":[{\"notice\":\"Thrown when a valude greater than type(uint160).max is cast to uint160\"}],\"ZeroSwapDelta()\":[{\"notice\":\"Error thrown when swap delta is zero\"}]},\"events\":{\"LimitOrderConfigUpdated(uint256[],uint256[])\":{\"notice\":\"Emitted when limit order config is updated\"},\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"notice\":\"Emitted when a swap with limit order placement is executed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor\"},\"getLimitOrderConfig()\":{\"notice\":\"Returns the current limit order configuration\"},\"msgSender()\":{\"notice\":\"Returns the address of the message sender.\"},\"poolManager()\":{\"notice\":\"The Uniswap V4 pool manager\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"notice\":\"Sets the canonical limit order configuration\"},\"swapRouter()\":{\"notice\":\"The Uniswap V3 swap router\"},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"notice\":\"Executes a swap with automatic limit order placement and filling\"},\"unlockCallback(bytes)\":{\"notice\":\"Callback function called by the pool manager during unlock\"},\"zoraLimitOrderBook()\":{\"notice\":\"The limit order book contract\"}},\"notice\":\"Standalone router contract that executes swaps with automatic limit order placement and filling.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/router/SwapWithLimitOrders.sol\":\"SwapWithLimitOrders\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol\":{\"keccak256\":\"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4\",\"dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol\":{\"keccak256\":\"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace\",\"dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85\",\"dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc\",\"dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt\"]},\"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol\":{\"keccak256\":\"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b\",\"dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx\"]},\"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol\":{\"keccak256\":\"0x02cf5e8af66c30bc6ec17d437a3a05fc76854abde7ca41220a1f15e1bbd974d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9bf15fb84592bd11ac9abeed5313f0942066fdafa2f08f41af69c87999aef7ee\",\"dweb:/ipfs/QmSbuxp5xuRExMUKQnYV1rjqQzjuGNHVbXddxwSqWT6GaD\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol\":{\"keccak256\":\"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070\",\"dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol\":{\"keccak256\":\"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7\",\"dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol\":{\"keccak256\":\"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485\",\"dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9\",\"dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol\":{\"keccak256\":\"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14\",\"dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol\":{\"keccak256\":\"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4\",\"dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b\",\"dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px\"]},\"src/libs/SwapLimitOrders.sol\":{\"keccak256\":\"0xcffca6d7061453cbdb2918f800ce40566d375c43ad17756430f4ec43bdc69934\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://d4dab36d3f9c53457533a42783282bb50437066fcf2ecacf374b08918190b906\",\"dweb:/ipfs/QmfNtG6LERr8woggizhEAnUYXS4Uh3VyainizJc32nP7JD\"]},\"src/router/ISetLimitOrderConfig.sol\":{\"keccak256\":\"0x0aa4874d3640a56782781c2822639c39b12f3267906eb3b093e3de4e38e2d054\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://286bf6d6893ae7c02e9a4e44de4cb6d60b8bc9a50248c08f3b325756dc34fdc8\",\"dweb:/ipfs/QmeKMiRmtCdZ4jRpfSxVySqchmRgW7SqUVxoqXBGQqB3UU\"]},\"src/router/SwapWithLimitOrders.sol\":{\"keccak256\":\"0xae6f4149540b54adfd44997a3ed58723338152aba73ab91365a84bbef0026772\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://0f8defdadc9d3ce36828f5a4cff8f6654a8597f27d6ce612c2e70af5c05df3e5\",\"dweb:/ipfs/QmQQaf9er45W8Ntdg2B3BiLyUCN7n9hcP1PeJzcLHQVRTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IZoraLimitOrderBook","name":"zoraLimitOrderBook_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"},{"internalType":"address","name":"permit2_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EmptyV4Route"},{"inputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"availableAmount","type":"uint256"}],"type":"error","name":"InsufficientInputCurrency"},{"inputs":[],"type":"error","name":"InsufficientOutputAmount"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[],"type":"error","name":"InvalidLimitOrderConfig"},{"inputs":[],"type":"error","name":"InvalidMultiple"},{"inputs":[],"type":"error","name":"InvalidPercent"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"OnlyPoolManager"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PercentOverflow"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnsafeCast"},{"inputs":[],"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart"},{"inputs":[],"type":"error","name":"ZeroSwapDelta"},{"inputs":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"percentages","type":"uint256[]","indexed":false}],"type":"event","name":"LimitOrderConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"indexed":false},{"internalType":"int24","name":"tickBeforeSwap","type":"int24","indexed":false},{"internalType":"int24","name":"tickAfterSwap","type":"int24","indexed":false},{"internalType":"int128","name":"amount0","type":"int128","indexed":false},{"internalType":"int128","name":"amount1","type":"int128","indexed":false},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint256","name":"multiple","type":"uint256"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"indexed":false}],"type":"event","name":"SwapWithLimitOrdersExecuted","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"getLimitOrderConfig","outputs":[{"internalType":"struct LimitOrderConfig","name":"","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct LimitOrderConfig","name":"config","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimitOrderConfig"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct LimitOrderConfig","name":"limitOrderConfig","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]},{"internalType":"address","name":"inputCurrency","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"bytes","name":"v3Route","type":"bytes"},{"internalType":"struct PoolKey[]","name":"v4Route","type":"tuple[]","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"swapWithLimitOrders","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraLimitOrderBook","outputs":[{"internalType":"contract IZoraLimitOrderBook","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"params":{"owner_":"The owner address","permit2_":"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)","poolManager_":"The Uniswap V4 pool manager","swapRouter_":"The Uniswap V3 swap router","zoraLimitOrderBook_":"The limit order book contract"}},"getLimitOrderConfig()":{"returns":{"_0":"The current limit order configuration"}},"msgSender()":{"returns":{"_0":"The address of the message sender."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setLimitOrderConfig((uint256[],uint256[]))":{"details":"Only callable by the owner","params":{"config":"The new limit order configuration"}},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"params":{"params":"The swap and limit order parameters"},"returns":{"delta":"The balance delta from the swap"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"unlockCallback(bytes)":{"details":"This function executes V4 swaps and settles coins to recipient","params":{"data":"Encoded CallbackData"},"returns":{"_0":"Encoded UnlockResult containing coin amount and pool info"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor"},"getLimitOrderConfig()":{"notice":"Returns the current limit order configuration"},"msgSender()":{"notice":"Returns the address of the message sender."},"poolManager()":{"notice":"The Uniswap V4 pool manager"},"setLimitOrderConfig((uint256[],uint256[]))":{"notice":"Sets the canonical limit order configuration"},"swapRouter()":{"notice":"The Uniswap V3 swap router"},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"notice":"Executes a swap with automatic limit order placement and filling"},"unlockCallback(bytes)":{"notice":"Callback function called by the pool manager during unlock"},"zoraLimitOrderBook()":{"notice":"The limit order book contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/router/SwapWithLimitOrders.sol":"SwapWithLimitOrders"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol":{"keccak256":"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c","urls":["bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4","dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol":{"keccak256":"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa","urls":["bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace","dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol":{"keccak256":"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1","urls":["bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85","dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0xa882ec8dc341d8a2651112ee0aa105480d0e306d547a81f05a1fb2d64d6ccb8f","urls":["bzz-raw://e9482377d0c678640fdb3b0c5c5c9086bc2d17538693fedfbc0fc184b4d100dc","dweb:/ipfs/Qmbgq8ZP5qtM9pwqLeLAiGD9ic8Zs6bqS8WpkjVnqnkPpt"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol":{"keccak256":"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683","urls":["bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b","dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol":{"keccak256":"0x02cf5e8af66c30bc6ec17d437a3a05fc76854abde7ca41220a1f15e1bbd974d3","urls":["bzz-raw://9bf15fb84592bd11ac9abeed5313f0942066fdafa2f08f41af69c87999aef7ee","dweb:/ipfs/QmSbuxp5xuRExMUKQnYV1rjqQzjuGNHVbXddxwSqWT6GaD"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol":{"keccak256":"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d","urls":["bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070","dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol":{"keccak256":"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e","urls":["bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7","dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol":{"keccak256":"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64","urls":["bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485","dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol":{"keccak256":"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1","urls":["bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9","dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol":{"keccak256":"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326","urls":["bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14","dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol":{"keccak256":"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff","urls":["bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4","dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4"],"license":"GPL-2.0-or-later"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18","urls":["bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b","dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/SwapLimitOrders.sol":{"keccak256":"0xcffca6d7061453cbdb2918f800ce40566d375c43ad17756430f4ec43bdc69934","urls":["bzz-raw://d4dab36d3f9c53457533a42783282bb50437066fcf2ecacf374b08918190b906","dweb:/ipfs/QmfNtG6LERr8woggizhEAnUYXS4Uh3VyainizJc32nP7JD"],"license":"ZORA-DELAYED-OSL-v1"},"src/router/ISetLimitOrderConfig.sol":{"keccak256":"0x0aa4874d3640a56782781c2822639c39b12f3267906eb3b093e3de4e38e2d054","urls":["bzz-raw://286bf6d6893ae7c02e9a4e44de4cb6d60b8bc9a50248c08f3b325756dc34fdc8","dweb:/ipfs/QmeKMiRmtCdZ4jRpfSxVySqchmRgW7SqUVxoqXBGQqB3UU"],"license":"MIT"},"src/router/SwapWithLimitOrders.sol":{"keccak256":"0xae6f4149540b54adfd44997a3ed58723338152aba73ab91365a84bbef0026772","urls":["bzz-raw://0f8defdadc9d3ce36828f5a4cff8f6654a8597f27d6ce612c2e70af5c05df3e5","dweb:/ipfs/QmQQaf9er45W8Ntdg2B3BiLyUCN7n9hcP1PeJzcLHQVRTo"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":92}
|