{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"_addLiquidity","inputs":[{"name":"key","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":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_donate","inputs":[{"name":"key","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":"amt0","type":"uint256","internalType":"uint256"},{"name":"amt1","type":"uint256","internalType":"uint256"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_initialize","inputs":[{"name":"key","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":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_removeLiquidity","inputs":[{"name":"key","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":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"_swap","inputs":[{"name":"key","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":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"afterAddLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterDonate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"amt0","type":"uint256","internalType":"uint256"},{"name":"amt1","type":"uint256","internalType":"uint256"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterInitialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"sqrtPriceX96","type":"uint160","internalType":"uint160"},{"name":"","type":"int24","internalType":"int24"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterRemoveLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int128","internalType":"int128"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeAddLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeDonate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"amt0","type":"uint256","internalType":"uint256"},{"name":"amt1","type":"uint256","internalType":"uint256"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeInitialize","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeRemoveLiquidity","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"key","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":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BeforeSwapDelta"},{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"nonpayable"},{"type":"function","name":"counter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setManager","inputs":[{"name":"_manager","type":"address","internalType":"contract IPoolManager"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"HookNotImplemented","inputs":[]}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f5561307190816100348239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081631ed7831c1461168e5750806321d0ee7014611650578063259982e5146116025780632adbda2a146115e85780632ade3880146114275780633e5e3c231461137f5780633f7286f4146112d7578063575e24b4146111f057806359b1290e1461101057806361bc221a14610fd657806366d9a9a014610e795780636bc141f114610d795780636c2bbe7e14610d305780636fe7e6eb14610c8457806385226c8114610bd3578063916a17c614610afd5780639f063efc14610a98578063b0464fdc146109c2578063b47b2fb1146108c5578063b5508aa914610814578063b6a8b0fa146107d9578063ba414fa614610797578063d0ebdbe71461071a578063dc98354e14610667578063e1b4af6914610613578063e20c9f711461055b578063e30eb84e146101be578063e4660d8c146101a05763fa7626d41461015d575f80fd5b3461019d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019d57602060ff601f54166040519015158152f35b80fd5b503461019d576101bb6101b236611a04565b92919091612bf1565b80f35b5034610523577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360161012081126105235760a0136105235760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112610523576040519061022e8261193f565b60a4358015158103610523578252602082019160c435835260e4359073ffffffffffffffffffffffffffffffffffffffff821682036105235760408101918252610104359167ffffffffffffffff83116105235761029260209336906004016117c5565b93909273ffffffffffffffffffffffffffffffffffffffff6021541673ffffffffffffffffffffffffffffffffffffffff6040519485937ff3cd914c0000000000000000000000000000000000000000000000000000000085526102fa600486016004611f5f565b51151560a4850152895160c4850152511660e4830152610120610104830152815f8161032b61012482018a8a611fff565b03925af1801561051857610527575b508073ffffffffffffffffffffffffffffffffffffffff9261035d92019061208b565b169173ffffffffffffffffffffffffffffffffffffffff60215416926004359073ffffffffffffffffffffffffffffffffffffffff82168203610523576103a5823087612d19565b925194737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561052357604051957ffe74f05b00000000000000000000000000000000000000000000000000000000875284600488015260248701525f86604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561051857610502575b84809650506024359073ffffffffffffffffffffffffffffffffffffffff8216938483036104fe578361046e92610468610457863084612d19565b986104638b8b136120d8565b61210c565b92612dcb565b5073ffffffffffffffffffffffffffffffffffffffff60215416803b156104fa5784928360649260405196879586947f0b0d9c090000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af180156104ef576104de5750f35b816104e89161195b565b61019d5780f35b6040513d84823e3d90fd5b8480fd5b8680fd5b9350935f61050f9161195b565b5f92849061041c565b6040513d5f823e3d90fd5b5f80fd5b906020823d602011610553575b816105416020938361195b565b8101031261052357905061035d61033a565b3d9150610534565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760405180602060155491828152019060155f527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475905f5b8181106105e7576105e3856105d78187038261195b565b60405191829182611732565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016105c0565b346105235761063d61062436611dd8565b945092610635602093929354611eef565b6020556123db565b60206040517fe1b4af69000000000000000000000000000000000000000000000000000000008152f35b346105235760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235761069e611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610523576106f06106d4611c40565b6106df602054611eef565b6020556106eb36611b74565b6127aa565b60206040517fdc98354e000000000000000000000000000000000000000000000000000000008152f35b346105235760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760043573ffffffffffffffffffffffffffffffffffffffff8116809103610523577fffffffffffffffffffffffff000000000000000000000000000000000000000060215416176021555f80f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760206107cf612882565b6040519015158152f35b34610523576107ea61062436611dd8565b60206040517fb6a8b0fa000000000000000000000000000000000000000000000000000000008152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760195461084e816122b3565b9061085c604051928361195b565b80825260195f9081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106108a857604051602080825281906105e390820188611aa9565b6001602081926108b7856122cb565b81520192019201919061088b565b34610523576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610523576108fd611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126105235760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610523576101443567ffffffffffffffff8111610523576109766109939136906004016117c5565b90610982602054611eef565b60205561098e36611e79565b61295b565b604080517fb47b2fb10000000000000000000000000000000000000000000000000000000081525f6020820152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601c546109fc816122b3565b90610a0a604051928361195b565b80825260208201601c5f527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2115f915b838310610a4e57604051806105e38782611d34565b60026020600192604051610a61816118be565b73ffffffffffffffffffffffffffffffffffffffff8654168152610a86858701612506565b83820152815201920192019190610a39565b3461052357610ace610ac8610aac36611c63565b96939250945050610abe602054611eef565b60205536906119ba565b90612138565b604080517f9f063efc0000000000000000000000000000000000000000000000000000000081525f6020820152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601d54610b37816122b3565b90610b45604051928361195b565b80825260208201601d5f527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f5f915b838310610b8957604051806105e38782611d34565b60026020600192604051610b9c816118be565b73ffffffffffffffffffffffffffffffffffffffff8654168152610bc1858701612506565b83820152815201920192019190610b74565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601a54610c0d816122b3565b90610c1b604051928361195b565b808252601a5f9081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610c6757604051602080825281906105e390820188611aa9565b600160208192610c76856122cb565b815201920192019190610c4a565b34610523576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357610cbc611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261052357610d06610cf2611c40565b610cfa61199c565b506106df602054611eef565b60206040517f6fe7e6eb000000000000000000000000000000000000000000000000000000008152f35b3461052357610d4a610d44610aac36611c63565b90612bf1565b604080517f6c2bbe7e0000000000000000000000000000000000000000000000000000000081525f6020820152f35b34610523577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360160c081126105235760a01361052357604051610dbc81611923565b60043573ffffffffffffffffffffffffffffffffffffffff8116810361052357815260243573ffffffffffffffffffffffffffffffffffffffff8116810361052357602082015260443562ffffff811681036105235760408201526064358060020b810361052357606082015260843573ffffffffffffffffffffffffffffffffffffffff8116810361052357608082015260a43573ffffffffffffffffffffffffffffffffffffffff8116810361052357610e77916127aa565b005b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601b54610eb3816122b3565b90610ec1604051928361195b565b808252602082019081601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc15f915b838310610f9b57848660405191829160208301906020845251809152604083019060408160051b85010192915f905b828210610f3057505050500390f35b91936020610f8b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0600195979984950301865288519083610f7b8351604084526040840190611a66565b9201519084818403910152611b1f565b9601920192018594939192610f21565b60026020600192604051610fae816118be565b610fb7866122cb565b8152610fc4858701612506565b83820152815201920192019190610ef2565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760208054604051908152f35b34610523577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360161010081126105235760a0136105235760e43567ffffffffffffffff8111610523576110689036906004016117c5565b9073ffffffffffffffffffffffffffffffffffffffff60215416602060405180927f234266d70000000000000000000000000000000000000000000000000000000082526110ba600483016004611f5f565b60a43560a483015260c43560c483015261010060e4830152815f816110e461010482018a8a611fff565b03925af18015610518576111bc575b508073ffffffffffffffffffffffffffffffffffffffff9261111692019061208b565b1673ffffffffffffffffffffffffffffffffffffffff602154166004359173ffffffffffffffffffffffffffffffffffffffff831683036105235761115c833084612d19565b6024359273ffffffffffffffffffffffffffffffffffffffff8416840361052357610e77948361119a92610468611194883084612d19565b9561210c565b61046873ffffffffffffffffffffffffffffffffffffffff602154169161210c565b906020823d6020116111e8575b816111d66020938361195b565b810103126105235790506111166110f3565b3d91506111c9565b34610523576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357611228611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126105235760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610523576101243567ffffffffffffffff8111610523576109766112a19136906004016117c5565b60606040517f575e24b40000000000000000000000000000000000000000000000000000000081525f60208201525f6040820152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760405180602060175491828152019060175f527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15905f5b818110611353576105e3856105d78187038261195b565b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161133c565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760405180602060185491828152019060185f527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e905f5b8181106113fb576105e3856105d78187038261195b565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016113e4565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601e54611461816122b3565b9061146f604051928361195b565b808252602082019081601e5f527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3505f915b83831061155057848660405191829160208301906020845251809152604083019060408160051b85010192915f905b8282106114de57505050500390f35b91936020611540827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc060019597998495030186526040838a5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611aa9565b96019201920185949391926114cf565b60405161155c816118be565b73ffffffffffffffffffffffffffffffffffffffff8354168152600183018054611585816122b3565b91611593604051938461195b565b81835260208301905f5260205f20905f905b8382106115cb5750505050600192826020928360029501528152019201920191906114a0565b6001602081926115da866122cb565b8152019301910190916115a5565b3461052357610e776115f936611a04565b92919091612138565b3461052357611626610ac8611616366117f3565b9491909350610abe602054611eef565b60206040517f259982e5000000000000000000000000000000000000000000000000000000008152f35b3461052357611664610d44611616366117f3565b60206040517f21d0ee70000000000000000000000000000000000000000000000000000000008152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601654808252602082019060165f527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289905f5b818110611706576105e3856105d78187038261195b565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016116ef565b60206040818301928281528451809452019201905f5b8181106117555750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611748565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361052357565b359073ffffffffffffffffffffffffffffffffffffffff8216820361052357565b9181601f840112156105235782359167ffffffffffffffff8311610523576020838186019501011161052357565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126105235760043573ffffffffffffffffffffffffffffffffffffffff81168103610523579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126105235760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126105235760c491610144359067ffffffffffffffff8211610523576118ba916004016117c5565b9091565b6040810190811067ffffffffffffffff8211176118da57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff8211176118da57604052565b60a0810190811067ffffffffffffffff8211176118da57604052565b6060810190811067ffffffffffffffff8211176118da57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176118da57604052565b60e435908160020b820361052357565b35908160020b820361052357565b9190826080910312610523576040516119d281611907565b60608082946119e0816119ac565b84526119ee602082016119ac565b6020850152604081013560408501520135910152565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc810161014081126105235760a01361052357600491611a458260a46119ba565b91610124359067ffffffffffffffff8211610523576118ba916004016117c5565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9080602083519182815201916020808360051b8301019401925f915b838310611ad457505050505090565b9091929394602080611b10837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086600196030187528951611a66565b97019301930191939290611ac5565b90602080835192838152019201905f5b818110611b3c5750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101611b2f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126105235760405190611bab82611923565b8160243573ffffffffffffffffffffffffffffffffffffffff8116810361052357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361052357602082015260643562ffffff811681036105235760408201526084358060020b810361052357606082015260a4359073ffffffffffffffffffffffffffffffffffffffff821682036105235760800152565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361052357565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126105235760043573ffffffffffffffffffffffffffffffffffffffff81168103610523579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126105235760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126105235760c49161014435916101643591610184359067ffffffffffffffff8211610523576118ba916004016117c5565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611d6657505050505090565b9091929394602080611dc9837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611b1f565b97019301930191939290611d57565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126105235760043573ffffffffffffffffffffffffffffffffffffffff81168103610523579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8301126105235760249160c4359160e43591610104359067ffffffffffffffff8211610523576118ba916004016117c5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c60609101126105235760405190611eb08261193f565b8160c435801515810361052357815260e4356020820152610104359073ffffffffffffffffffffffffffffffffffffffff821682036105235760400152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f1c5760010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9190826040910312610523576020825192015190565b73ffffffffffffffffffffffffffffffffffffffff611f7d826117a4565b16825273ffffffffffffffffffffffffffffffffffffffff611fa1602083016117a4565b166020830152604081013562ffffff8116810361052357611ff96080809362ffffff73ffffffffffffffffffffffffffffffffffffffff94166040870152611feb606082016119ac565b60020b6060870152016117a4565b16910152565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b606061208895936120518361014095611f5f565b805160020b60a0840152602081015160020b60c0840152604081015160e08401520151610100820152816101208201520191611fff565b90565b90816020910312610523573573ffffffffffffffffffffffffffffffffffffffff811681036105235790565b3573ffffffffffffffffffffffffffffffffffffffff811681036105235790565b156120df57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f80000000000000000000000000000000000000000000000000000000000000008114611f1c575f0390565b9160408461219293835f73ffffffffffffffffffffffffffffffffffffffff60215416928551978895869485937f5a6bcfda0000000000000000000000000000000000000000000000000000000085528c6004860161203d565b03925af1908115610518576122719473ffffffffffffffffffffffffffffffffffffffff936121c993612285575b5081019061208b565b1661224e73ffffffffffffffffffffffffffffffffffffffff602154166122436121fc6121f5866120b7565b3084612d19565b84602087019361046861224861221b612214886120b7565b3085612d19565b995f8612801561227c575b61222f906120d8565b5f86138015612273575b61224390156120d8565b6120b7565b9361210c565b9161046873ffffffffffffffffffffffffffffffffffffffff602154169161210c565b565b505f8b13612239565b505f8b12612226565b6122a69060403d6040116122ac575b61229e818361195b565b810190611f49565b506121c0565b503d612294565b67ffffffffffffffff81116118da5760051b60200190565b90604051915f8154908160011c92600183169283156123c2575b6020851084146123955784875286939081156123555750600114612311575b506122719250038361195b565b90505f9291925260205f20905f915b818310612339575050906020612271928201015f612304565b6020919350806001915483858901015201910190918492612320565b602093506122719592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f612304565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f16936122e5565b90816020910312610523575190565b9293919060209073ffffffffffffffffffffffffffffffffffffffff602154166040519384927f234266d70000000000000000000000000000000000000000000000000000000084526124316004850189611f5f565b60a484015260c483015261010060e4830152815f816124556101048201898c611fff565b03925af18015610518576124d4575b5061248a8373ffffffffffffffffffffffffffffffffffffffff9261227195019061208b565b1661224e73ffffffffffffffffffffffffffffffffffffffff602154166122436124b66121f5866120b7565b8460208701936104686122486124ce612214886120b7565b996120b7565b6020813d6020116124fe575b816124ed6020938361195b565b81010312610523575061248a612464565b3d91506124e0565b90604051918281549182825260208201905f5260205f20925f905b80600783011061271d576122719454918181106126e7575b8181106126b1575b81811061267b575b818110612645575b81811061260f575b8181106125d9575b8181106125a4575b10612577575b50038361195b565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f61256f565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301612569565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301612561565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301612559565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301612551565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301612549565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b168152019301612541565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301612539565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920185929391612521565b9062ffffff60c46020925f60408601916107d0835273ffffffffffffffffffffffffffffffffffffffff8060215416918160806040519a8b998a987f6276cbbe000000000000000000000000000000000000000000000000000000008a528483511660048b0152848d8401511660248b015251166044890152606081015160020b606489015201511660848601521660a48401525af180156105185761284d5750565b6020813d60201161287a575b816128666020938361195b565b8101031261052357518060020b0361052357565b3d9150612859565b60085460ff1680156128915790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610518575f91612929575b50151590565b90506020813d602011612953575b816129446020938361195b565b8101031261052357515f612923565b3d9150612937565b9091602154925f93602060405180927ff3cd914c00000000000000000000000000000000000000000000000000000000825261299b600483016024611f5f565b8651151560a483015273ffffffffffffffffffffffffffffffffffffffff604084890198895160c486015201511660e4830152610120610104830152815f73ffffffffffffffffffffffffffffffffffffffff826129fe61012482018b8b611fff565b0393165af1801561051857612bbd575b508073ffffffffffffffffffffffffffffffffffffffff92612a3192019061208b565b1673ffffffffffffffffffffffffffffffffffffffff6021541660243573ffffffffffffffffffffffffffffffffffffffff8116810361052357612a76813084612d19565b9351737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561052357604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825285600483015260248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561051857612ba8575b506044359073ffffffffffffffffffffffffffffffffffffffff8216928383036104fe579084612b2492610468610457863084612d19565b5073ffffffffffffffffffffffffffffffffffffffff60215416803b156104fa578492918360649260405196879586947f0b0d9c090000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af180156104ef57612b96575050565b612ba182809261195b565b61019d5750565b612bb59195505f9061195b565b5f935f612aec565b906020823d602011612be9575b81612bd76020938361195b565b81010312610523579050612a31612a0e565b3d9150612bca565b91612c926040858151612c0381611907565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88815260786020820152670de0b6b3a7640000838201525f6060820152845f73ffffffffffffffffffffffffffffffffffffffff60215416928551968795869485937f5a6bcfda0000000000000000000000000000000000000000000000000000000085528d6004860161203d565b03925af1801561051857612192936040928792612cfd575b50835f73ffffffffffffffffffffffffffffffffffffffff60215416928551978895869485937f5a6bcfda0000000000000000000000000000000000000000000000000000000085528c6004860161203d565b612d1390843d86116122ac5761229e818361195b565b50612caa565b73ffffffffffffffffffffffffffffffffffffffff809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115610518575f91612d84575090565b90506020813d602011612dab575b81612d9f6020938361195b565b81010312610523575190565b3d9150612d92565b90816020910312610523575180151581036105235790565b90919073ffffffffffffffffffffffffffffffffffffffff1680612e6b57505073ffffffffffffffffffffffffffffffffffffffff600460209260405194859384927f11da60b4000000000000000000000000000000000000000000000000000000008452165af1801561051857612e405750565b612e619060203d602011612e64575b612e59818361195b565b8101906123cc565b50565b503d612e4f565b90929173ffffffffffffffffffffffffffffffffffffffff1691823b1561052357604051937fa58411940000000000000000000000000000000000000000000000000000000085528260048601525a945f816024818389819bf180156105185761303b575b5073ffffffffffffffffffffffffffffffffffffffff1684308214612fc7576020929160649160405195869485937f23b872dd000000000000000000000000000000000000000000000000000000008552600485015288602485015260448401525af18015612fbc57916020918493612f8f575b505b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115612f835750612e405750565b604051903d90823e3d90fd5b612fae90833d8511612fb5575b612fa6818361195b565b810190612db3565b505f612f44565b503d612f9c565b6040513d85823e3d90fd5b929050604460209260405194859384927fa9059cbb00000000000000000000000000000000000000000000000000000000845288600485015260248401525af18015612fbc5791602091849361301e575b50612f46565b61303490833d8511612fb557612fa6818361195b565b505f613018565b6130489195505f9061195b565b5f9373ffffffffffffffffffffffffffffffffffffffff612ed056fea164736f6c634300081a000a","sourceMap":"857:6652:97:-:0;;;;;;;3166:4:2;857:6652:97;;3166:4:2;857:6652:97;;;3166:4:2;857:6652:97;3166:4:2;857:6652:97;;1038:4:12;857:6652:97;;;1038:4:12;857:6652:97;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081631ed7831c1461168e5750806321d0ee7014611650578063259982e5146116025780632adbda2a146115e85780632ade3880146114275780633e5e3c231461137f5780633f7286f4146112d7578063575e24b4146111f057806359b1290e1461101057806361bc221a14610fd657806366d9a9a014610e795780636bc141f114610d795780636c2bbe7e14610d305780636fe7e6eb14610c8457806385226c8114610bd3578063916a17c614610afd5780639f063efc14610a98578063b0464fdc146109c2578063b47b2fb1146108c5578063b5508aa914610814578063b6a8b0fa146107d9578063ba414fa614610797578063d0ebdbe71461071a578063dc98354e14610667578063e1b4af6914610613578063e20c9f711461055b578063e30eb84e146101be578063e4660d8c146101a05763fa7626d41461015d575f80fd5b3461019d57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019d57602060ff601f54166040519015158152f35b80fd5b503461019d576101bb6101b236611a04565b92919091612bf1565b80f35b5034610523577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360161012081126105235760a0136105235760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112610523576040519061022e8261193f565b60a4358015158103610523578252602082019160c435835260e4359073ffffffffffffffffffffffffffffffffffffffff821682036105235760408101918252610104359167ffffffffffffffff83116105235761029260209336906004016117c5565b93909273ffffffffffffffffffffffffffffffffffffffff6021541673ffffffffffffffffffffffffffffffffffffffff6040519485937ff3cd914c0000000000000000000000000000000000000000000000000000000085526102fa600486016004611f5f565b51151560a4850152895160c4850152511660e4830152610120610104830152815f8161032b61012482018a8a611fff565b03925af1801561051857610527575b508073ffffffffffffffffffffffffffffffffffffffff9261035d92019061208b565b169173ffffffffffffffffffffffffffffffffffffffff60215416926004359073ffffffffffffffffffffffffffffffffffffffff82168203610523576103a5823087612d19565b925194737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561052357604051957ffe74f05b00000000000000000000000000000000000000000000000000000000875284600488015260248701525f86604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561051857610502575b84809650506024359073ffffffffffffffffffffffffffffffffffffffff8216938483036104fe578361046e92610468610457863084612d19565b986104638b8b136120d8565b61210c565b92612dcb565b5073ffffffffffffffffffffffffffffffffffffffff60215416803b156104fa5784928360649260405196879586947f0b0d9c090000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af180156104ef576104de5750f35b816104e89161195b565b61019d5780f35b6040513d84823e3d90fd5b8480fd5b8680fd5b9350935f61050f9161195b565b5f92849061041c565b6040513d5f823e3d90fd5b5f80fd5b906020823d602011610553575b816105416020938361195b565b8101031261052357905061035d61033a565b3d9150610534565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760405180602060155491828152019060155f527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475905f5b8181106105e7576105e3856105d78187038261195b565b60405191829182611732565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016105c0565b346105235761063d61062436611dd8565b945092610635602093929354611eef565b6020556123db565b60206040517fe1b4af69000000000000000000000000000000000000000000000000000000008152f35b346105235760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235761069e611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610523576106f06106d4611c40565b6106df602054611eef565b6020556106eb36611b74565b6127aa565b60206040517fdc98354e000000000000000000000000000000000000000000000000000000008152f35b346105235760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760043573ffffffffffffffffffffffffffffffffffffffff8116809103610523577fffffffffffffffffffffffff000000000000000000000000000000000000000060215416176021555f80f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760206107cf612882565b6040519015158152f35b34610523576107ea61062436611dd8565b60206040517fb6a8b0fa000000000000000000000000000000000000000000000000000000008152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760195461084e816122b3565b9061085c604051928361195b565b80825260195f9081527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106108a857604051602080825281906105e390820188611aa9565b6001602081926108b7856122cb565b81520192019201919061088b565b34610523576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610523576108fd611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126105235760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610523576101443567ffffffffffffffff8111610523576109766109939136906004016117c5565b90610982602054611eef565b60205561098e36611e79565b61295b565b604080517fb47b2fb10000000000000000000000000000000000000000000000000000000081525f6020820152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601c546109fc816122b3565b90610a0a604051928361195b565b80825260208201601c5f527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2115f915b838310610a4e57604051806105e38782611d34565b60026020600192604051610a61816118be565b73ffffffffffffffffffffffffffffffffffffffff8654168152610a86858701612506565b83820152815201920192019190610a39565b3461052357610ace610ac8610aac36611c63565b96939250945050610abe602054611eef565b60205536906119ba565b90612138565b604080517f9f063efc0000000000000000000000000000000000000000000000000000000081525f6020820152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601d54610b37816122b3565b90610b45604051928361195b565b80825260208201601d5f527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f5f915b838310610b8957604051806105e38782611d34565b60026020600192604051610b9c816118be565b73ffffffffffffffffffffffffffffffffffffffff8654168152610bc1858701612506565b83820152815201920192019190610b74565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601a54610c0d816122b3565b90610c1b604051928361195b565b808252601a5f9081527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610c6757604051602080825281906105e390820188611aa9565b600160208192610c76856122cb565b815201920192019190610c4a565b34610523576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357610cbc611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261052357610d06610cf2611c40565b610cfa61199c565b506106df602054611eef565b60206040517f6fe7e6eb000000000000000000000000000000000000000000000000000000008152f35b3461052357610d4a610d44610aac36611c63565b90612bf1565b604080517f6c2bbe7e0000000000000000000000000000000000000000000000000000000081525f6020820152f35b34610523577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360160c081126105235760a01361052357604051610dbc81611923565b60043573ffffffffffffffffffffffffffffffffffffffff8116810361052357815260243573ffffffffffffffffffffffffffffffffffffffff8116810361052357602082015260443562ffffff811681036105235760408201526064358060020b810361052357606082015260843573ffffffffffffffffffffffffffffffffffffffff8116810361052357608082015260a43573ffffffffffffffffffffffffffffffffffffffff8116810361052357610e77916127aa565b005b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601b54610eb3816122b3565b90610ec1604051928361195b565b808252602082019081601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc15f915b838310610f9b57848660405191829160208301906020845251809152604083019060408160051b85010192915f905b828210610f3057505050500390f35b91936020610f8b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0600195979984950301865288519083610f7b8351604084526040840190611a66565b9201519084818403910152611b1f565b9601920192018594939192610f21565b60026020600192604051610fae816118be565b610fb7866122cb565b8152610fc4858701612506565b83820152815201920192019190610ef2565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760208054604051908152f35b34610523577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360161010081126105235760a0136105235760e43567ffffffffffffffff8111610523576110689036906004016117c5565b9073ffffffffffffffffffffffffffffffffffffffff60215416602060405180927f234266d70000000000000000000000000000000000000000000000000000000082526110ba600483016004611f5f565b60a43560a483015260c43560c483015261010060e4830152815f816110e461010482018a8a611fff565b03925af18015610518576111bc575b508073ffffffffffffffffffffffffffffffffffffffff9261111692019061208b565b1673ffffffffffffffffffffffffffffffffffffffff602154166004359173ffffffffffffffffffffffffffffffffffffffff831683036105235761115c833084612d19565b6024359273ffffffffffffffffffffffffffffffffffffffff8416840361052357610e77948361119a92610468611194883084612d19565b9561210c565b61046873ffffffffffffffffffffffffffffffffffffffff602154169161210c565b906020823d6020116111e8575b816111d66020938361195b565b810103126105235790506111166110f3565b3d91506111c9565b34610523576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357611228611781565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126105235760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610523576101243567ffffffffffffffff8111610523576109766112a19136906004016117c5565b60606040517f575e24b40000000000000000000000000000000000000000000000000000000081525f60208201525f6040820152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760405180602060175491828152019060175f527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15905f5b818110611353576105e3856105d78187038261195b565b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161133c565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105235760405180602060185491828152019060185f527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e905f5b8181106113fb576105e3856105d78187038261195b565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016113e4565b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601e54611461816122b3565b9061146f604051928361195b565b808252602082019081601e5f527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3505f915b83831061155057848660405191829160208301906020845251809152604083019060408160051b85010192915f905b8282106114de57505050500390f35b91936020611540827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc060019597998495030186526040838a5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611aa9565b96019201920185949391926114cf565b60405161155c816118be565b73ffffffffffffffffffffffffffffffffffffffff8354168152600183018054611585816122b3565b91611593604051938461195b565b81835260208301905f5260205f20905f905b8382106115cb5750505050600192826020928360029501528152019201920191906114a0565b6001602081926115da866122cb565b8152019301910190916115a5565b3461052357610e776115f936611a04565b92919091612138565b3461052357611626610ac8611616366117f3565b9491909350610abe602054611eef565b60206040517f259982e5000000000000000000000000000000000000000000000000000000008152f35b3461052357611664610d44611616366117f3565b60206040517f21d0ee70000000000000000000000000000000000000000000000000000000008152f35b34610523575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261052357601654808252602082019060165f527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289905f5b818110611706576105e3856105d78187038261195b565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016116ef565b60206040818301928281528451809452019201905f5b8181106117555750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611748565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361052357565b359073ffffffffffffffffffffffffffffffffffffffff8216820361052357565b9181601f840112156105235782359167ffffffffffffffff8311610523576020838186019501011161052357565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126105235760043573ffffffffffffffffffffffffffffffffffffffff81168103610523579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126105235760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126105235760c491610144359067ffffffffffffffff8211610523576118ba916004016117c5565b9091565b6040810190811067ffffffffffffffff8211176118da57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff8211176118da57604052565b60a0810190811067ffffffffffffffff8211176118da57604052565b6060810190811067ffffffffffffffff8211176118da57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176118da57604052565b60e435908160020b820361052357565b35908160020b820361052357565b9190826080910312610523576040516119d281611907565b60608082946119e0816119ac565b84526119ee602082016119ac565b6020850152604081013560408501520135910152565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc810161014081126105235760a01361052357600491611a458260a46119ba565b91610124359067ffffffffffffffff8211610523576118ba916004016117c5565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9080602083519182815201916020808360051b8301019401925f915b838310611ad457505050505090565b9091929394602080611b10837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086600196030187528951611a66565b97019301930191939290611ac5565b90602080835192838152019201905f5b818110611b3c5750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101611b2f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126105235760405190611bab82611923565b8160243573ffffffffffffffffffffffffffffffffffffffff8116810361052357815260443573ffffffffffffffffffffffffffffffffffffffff8116810361052357602082015260643562ffffff811681036105235760408201526084358060020b810361052357606082015260a4359073ffffffffffffffffffffffffffffffffffffffff821682036105235760800152565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361052357565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126105235760043573ffffffffffffffffffffffffffffffffffffffff81168103610523579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8201126105235760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c8301126105235760c49161014435916101643591610184359067ffffffffffffffff8211610523576118ba916004016117c5565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611d6657505050505090565b9091929394602080611dc9837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611b1f565b97019301930191939290611d57565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126105235760043573ffffffffffffffffffffffffffffffffffffffff81168103610523579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8301126105235760249160c4359160e43591610104359067ffffffffffffffff8211610523576118ba916004016117c5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c60609101126105235760405190611eb08261193f565b8160c435801515810361052357815260e4356020820152610104359073ffffffffffffffffffffffffffffffffffffffff821682036105235760400152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f1c5760010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9190826040910312610523576020825192015190565b73ffffffffffffffffffffffffffffffffffffffff611f7d826117a4565b16825273ffffffffffffffffffffffffffffffffffffffff611fa1602083016117a4565b166020830152604081013562ffffff8116810361052357611ff96080809362ffffff73ffffffffffffffffffffffffffffffffffffffff94166040870152611feb606082016119ac565b60020b6060870152016117a4565b16910152565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b606061208895936120518361014095611f5f565b805160020b60a0840152602081015160020b60c0840152604081015160e08401520151610100820152816101208201520191611fff565b90565b90816020910312610523573573ffffffffffffffffffffffffffffffffffffffff811681036105235790565b3573ffffffffffffffffffffffffffffffffffffffff811681036105235790565b156120df57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f80000000000000000000000000000000000000000000000000000000000000008114611f1c575f0390565b9160408461219293835f73ffffffffffffffffffffffffffffffffffffffff60215416928551978895869485937f5a6bcfda0000000000000000000000000000000000000000000000000000000085528c6004860161203d565b03925af1908115610518576122719473ffffffffffffffffffffffffffffffffffffffff936121c993612285575b5081019061208b565b1661224e73ffffffffffffffffffffffffffffffffffffffff602154166122436121fc6121f5866120b7565b3084612d19565b84602087019361046861224861221b612214886120b7565b3085612d19565b995f8612801561227c575b61222f906120d8565b5f86138015612273575b61224390156120d8565b6120b7565b9361210c565b9161046873ffffffffffffffffffffffffffffffffffffffff602154169161210c565b565b505f8b13612239565b505f8b12612226565b6122a69060403d6040116122ac575b61229e818361195b565b810190611f49565b506121c0565b503d612294565b67ffffffffffffffff81116118da5760051b60200190565b90604051915f8154908160011c92600183169283156123c2575b6020851084146123955784875286939081156123555750600114612311575b506122719250038361195b565b90505f9291925260205f20905f915b818310612339575050906020612271928201015f612304565b6020919350806001915483858901015201910190918492612320565b602093506122719592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f612304565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f16936122e5565b90816020910312610523575190565b9293919060209073ffffffffffffffffffffffffffffffffffffffff602154166040519384927f234266d70000000000000000000000000000000000000000000000000000000084526124316004850189611f5f565b60a484015260c483015261010060e4830152815f816124556101048201898c611fff565b03925af18015610518576124d4575b5061248a8373ffffffffffffffffffffffffffffffffffffffff9261227195019061208b565b1661224e73ffffffffffffffffffffffffffffffffffffffff602154166122436124b66121f5866120b7565b8460208701936104686122486124ce612214886120b7565b996120b7565b6020813d6020116124fe575b816124ed6020938361195b565b81010312610523575061248a612464565b3d91506124e0565b90604051918281549182825260208201905f5260205f20925f905b80600783011061271d576122719454918181106126e7575b8181106126b1575b81811061267b575b818110612645575b81811061260f575b8181106125d9575b8181106125a4575b10612577575b50038361195b565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f61256f565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301612569565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301612561565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301612559565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301612551565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301612549565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b168152019301612541565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301612539565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920185929391612521565b9062ffffff60c46020925f60408601916107d0835273ffffffffffffffffffffffffffffffffffffffff8060215416918160806040519a8b998a987f6276cbbe000000000000000000000000000000000000000000000000000000008a528483511660048b0152848d8401511660248b015251166044890152606081015160020b606489015201511660848601521660a48401525af180156105185761284d5750565b6020813d60201161287a575b816128666020938361195b565b8101031261052357518060020b0361052357565b3d9150612859565b60085460ff1680156128915790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610518575f91612929575b50151590565b90506020813d602011612953575b816129446020938361195b565b8101031261052357515f612923565b3d9150612937565b9091602154925f93602060405180927ff3cd914c00000000000000000000000000000000000000000000000000000000825261299b600483016024611f5f565b8651151560a483015273ffffffffffffffffffffffffffffffffffffffff604084890198895160c486015201511660e4830152610120610104830152815f73ffffffffffffffffffffffffffffffffffffffff826129fe61012482018b8b611fff565b0393165af1801561051857612bbd575b508073ffffffffffffffffffffffffffffffffffffffff92612a3192019061208b565b1673ffffffffffffffffffffffffffffffffffffffff6021541660243573ffffffffffffffffffffffffffffffffffffffff8116810361052357612a76813084612d19565b9351737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561052357604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825285600483015260248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561051857612ba8575b506044359073ffffffffffffffffffffffffffffffffffffffff8216928383036104fe579084612b2492610468610457863084612d19565b5073ffffffffffffffffffffffffffffffffffffffff60215416803b156104fa578492918360649260405196879586947f0b0d9c090000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af180156104ef57612b96575050565b612ba182809261195b565b61019d5750565b612bb59195505f9061195b565b5f935f612aec565b906020823d602011612be9575b81612bd76020938361195b565b81010312610523579050612a31612a0e565b3d9150612bca565b91612c926040858151612c0381611907565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88815260786020820152670de0b6b3a7640000838201525f6060820152845f73ffffffffffffffffffffffffffffffffffffffff60215416928551968795869485937f5a6bcfda0000000000000000000000000000000000000000000000000000000085528d6004860161203d565b03925af1801561051857612192936040928792612cfd575b50835f73ffffffffffffffffffffffffffffffffffffffff60215416928551978895869485937f5a6bcfda0000000000000000000000000000000000000000000000000000000085528c6004860161203d565b612d1390843d86116122ac5761229e818361195b565b50612caa565b73ffffffffffffffffffffffffffffffffffffffff809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115610518575f91612d84575090565b90506020813d602011612dab575b81612d9f6020938361195b565b81010312610523575190565b3d9150612d92565b90816020910312610523575180151581036105235790565b90919073ffffffffffffffffffffffffffffffffffffffff1680612e6b57505073ffffffffffffffffffffffffffffffffffffffff600460209260405194859384927f11da60b4000000000000000000000000000000000000000000000000000000008452165af1801561051857612e405750565b612e619060203d602011612e64575b612e59818361195b565b8101906123cc565b50565b503d612e4f565b90929173ffffffffffffffffffffffffffffffffffffffff1691823b1561052357604051937fa58411940000000000000000000000000000000000000000000000000000000085528260048601525a945f816024818389819bf180156105185761303b575b5073ffffffffffffffffffffffffffffffffffffffff1684308214612fc7576020929160649160405195869485937f23b872dd000000000000000000000000000000000000000000000000000000008552600485015288602485015260448401525af18015612fbc57916020918493612f8f575b505b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115612f835750612e405750565b604051903d90823e3d90fd5b612fae90833d8511612fb5575b612fa6818361195b565b810190612db3565b505f612f44565b503d612f9c565b6040513d85823e3d90fd5b929050604460209260405194859384927fa9059cbb00000000000000000000000000000000000000000000000000000000845288600485015260248401525af18015612fbc5791602091849361301e575b50612f46565b61303490833d8511612fb557612fa6818361195b565b505f613018565b6130489195505f9061195b565b5f9373ffffffffffffffffffffffffffffffffffffffff612ed056fea164736f6c634300081a000a","sourceMap":"857:6652:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2673:9;857:6652;2673:9;;;1930;857:6652;1930:9;;;857:6652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1073:22;857:6652;1073:22;;;857:6652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4051:9;857:6652;4051:9;;;857:6652;;;;;;;;;;;;;;;4340:9;857:6652;4340:9;;;857:6652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;857:6652:97;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;4788:7;857:6652;;;;;4775:49;;;857:6652;4775:49;;857:6652;;4775:49;;857:6652;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4775:49;;;;;;;;;;857:6652;4850:31;;857:6652;4850:31;;;;;;:::i;:::-;857:6652;;;4788:7;857:6652;;4958:13;857:6652;;;;;;;;;;4907:65;4951:4;;4907:65;;:::i;:::-;857:6652;;2943:24:1;857:6652:97;2943:24:1;;;;857:6652:97;;2943:24:1;857:6652:97;2943:24:1;;;857:6652:97;2943:24:1;;857:6652:97;;;;;;2943:24:1;;;857:6652:97;2943:24:1;;;;;;;;857:6652:97;5099:13;;;;857:6652;;;;;;;;;;;;;;5206:5;857:6652;5196:7;5048:65;4951:4;;5048:65;;:::i;:::-;5130:10;5123:18;5130:10;;;5123:18;:::i;:::-;5196:7;:::i;:::-;5206:5;;:::i;:::-;857:6652;;4788:7;857:6652;;2355:41:151;;;;;857:6652:97;;;2355:41:151;857:6652:97;;;2355:41:151;;;;;857:6652:97;2355:41:151;;857:6652:97;2355:41:151;;857:6652:97;;;;;2943:24:1;857:6652:97;;;2355:41:151;;;;;;;;857:6652:97;;2355:41:151;;;;;:::i;:::-;857:6652:97;;2355:41:151;857:6652:97;2355:41:151;857:6652:97;;;;;;;;;2355:41:151;857:6652:97;;;;;;;2943:24:1;;;;857:6652:97;2943:24:1;;;:::i;:::-;857:6652:97;2943:24:1;;;;;;857:6652:97;;;;;;;;;2943:24:1;857:6652:97;;;4775:49;;857:6652;4775:49;;857:6652;4775:49;;;;;;857:6652;4775:49;;;:::i;:::-;;;857:6652;;;;4775:49;-1:-1:-1;4850:31:97;4775:49;;;;;-1:-1:-1;4775:49:97;;857:6652;;;;;;;;;;;;;;;2723:18:5;857:6652:97;;;;;;;2723:18:5;857:6652:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4384:8;857:6652;;;:::i;:::-;;;;4340:9;;857:6652;;;;4340:9;:::i;:::-;;857:6652;4384:8;:::i;:::-;4340:9;857:6652;;4410:27;857:6652;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1364:30;857:6652;;:::i;:::-;1345:9;857:6652;;1345:9;:::i;:::-;857:6652;;;;;:::i;:::-;1364:30;:::i;:::-;857:6652;;;1411:32;857:6652;;;;;;;;;;;;;;;;;;;;;;;;;1190:18;857:6652;;;1190:18;857:6652;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4095:8;857:6652;;;:::i;4095:8::-;4051:9;857:6652;;4121:28;857:6652;;;;;;;;;;;;;;2575:18:5;857:6652:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2575:18:5;857:6652:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3784:28;857:6652;;;;;;:::i;:::-;;3765:9;857:6652;;3765:9;:::i;:::-;857:6652;;;;;:::i;:::-;3784:28;:::i;:::-;857:6652;;;3830:25;857:6652;;;;;;;;;;;;;;;;;;;2876:18:5;857:6652:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;2876:18:5;857:6652:97;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;2331:36;857:6652;;;;:::i;:::-;;;;;;;;2312:9;;857:6652;2312:9;:::i;:::-;;857:6652;;;;:::i;:::-;2331:36;;:::i;:::-;857:6652;;;2385:33;857:6652;;;2312:9;857:6652;;;;;;;;;;;;;;;3653:18:5;857:6652:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;3653:18:5;857:6652:97;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3162:18:5;857:6652:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3162:18:5;857:6652:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1633:30;857:6652;;:::i;:::-;;;:::i;:::-;;1614:9;857:6652;;1614:9;:::i;1633:30::-;857:6652;;;1680:31;857:6652;;;;;;;3083:39;857:6652;;;;:::i;:::-;3083:39;;:::i;:::-;857:6652;;;3140:36;857:6652;;;3064:9;857:6652;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3346:26:5;857:6652:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;3346:26:5;857:6652:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1073:22;857:6652;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;;;;:::i;:::-;;;7077:7;857:6652;;7064:55;857:6652;;7064:55;;857:6652;7064:55;;857:6652;;7064:55;;857:6652;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7064:55;;;;;;;;;;857:6652;7145:31;;857:6652;7145:31;;;;;;:::i;:::-;857:6652;;7077:7;857:6652;;;;;;;;;;;;7202:65;7246:4;;7202:65;;:::i;:::-;7344:13;857:6652;;;;;;;;;7494:5;857:6652;;7423:5;857:6652;7413:7;7293:65;7246:4;;7293:65;;:::i;:::-;7368:13;7413:7;:::i;7423:5::-;7484:7;857:6652;7077:7;857:6652;;7484:7;;:::i;7064:55::-;;;;;;;;;;;;857:6652;7064:55;;;:::i;:::-;;;857:6652;;;;7064:55;-1:-1:-1;7145:31:97;7064:55;;;;;-1:-1:-1;7064:55:97;;857:6652;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3443:28;857:6652;;;;;;:::i;3443:28::-;857:6652;;;3489:26;857:6652;;;;;;;;;;;;;;;;;;;;;;;;;;;;3501:18:5;857:6652:97;;;;;;;3501:18:5;857:6652:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:16:5;857:6652:97;;;;;;;3794:16:5;857:6652:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3948:19:5;857:6652:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;3948:19:5;857:6652:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;1949:36;857:6652;;;;:::i;:::-;;;;;;1930:9;;857:6652;1930:9;:::i;1949:36::-;1930:9;857:6652;;2002:34;857:6652;;;;;;;2692:39;857:6652;;;;:::i;2692:39::-;2673:9;857:6652;;2748:37;857:6652;;;;;;;;;;;;;;3018:16:5;857:6652:97;;;;;;;;3018:16:5;857:6652:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;857:6652:97;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;5293:661::-;;857:6652;5293:661;5417:60;5293:661;857:6652;-1:-1:-1;857:6652:97;5430:7;857:6652;;;;;5417:60;;;;;;;857:6652;5417:60;;;;;;;:::i;:::-;;;;;;;;;;5941:5;5417:60;857:6652;5417:60;5503:31;5417:60;;;5293:661;5503:31;;;;;:::i;:::-;857:6652;5886:13;857:6652;5430:7;857:6652;;5870:5;5560:65;5611:13;;;:::i;:::-;5604:4;5560:65;;:::i;:::-;5702:13;;;;;5860:7;5815:13;5651:65;5702:13;;;:::i;:::-;5604:4;5651:65;;:::i;:::-;5734:10;-1:-1:-1;5734:10:97;;:24;;;;5293:661;5727:32;;;:::i;:::-;-1:-1:-1;5778:10:97;;:24;;;;5293:661;5769:35;5776:27;;5769:35;:::i;:::-;5815:13;:::i;:::-;5860:7;;:::i;5886:13::-;857:6652;5931:7;857:6652;5430:7;857:6652;;5931:7;;:::i;5941:5::-;5293:661::o;5778:24::-;-1:-1:-1;;5792:10:97;;5778:24;;5734;-1:-1:-1;;5748:10:97;;5734:24;;5417:60;;;857:6652;5417:60;857:6652;5417:60;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;857:6652;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;857:6652:97;;;;;-1:-1:-1;857:6652:97;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;;;;;;;:::o;6955:552::-;;;;;7064:55;6955:552;857:6652;7077:7;857:6652;;;;7064:55;;;857:6652;7064:55;;857:6652;7064:55;;;857:6652;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;:::i;:::-;7064:55;;;;;;;;;;6955:552;7145:31;;;857:6652;7145:31;7494:5;7145:31;;;;:::i;:::-;857:6652;7439:13;857:6652;7077:7;857:6652;;7423:5;7202:65;7253:13;;;:::i;7202:65::-;7344:13;7064:55;7344:13;;;7413:7;7368:13;7293:65;7344:13;;;:::i;7293:65::-;7368:13;;:::i;7064:55::-;;;;;;;;;;;857:6652;7064:55;;;:::i;:::-;;;857:6652;;;;-1:-1:-1;7145:31:97;7064:55;;;;;-1:-1:-1;7064:55:97;;857:6652;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;-1:-1:-1;857:6652:97;;-1:-1:-1;857:6652:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4450:214;;857:6652;4606:51;857:6652;4450:214;-1:-1:-1;4582:7:97;;;857:6652;4592:4;857:6652;;;;4619:7;857:6652;;;;;4582:7;857:6652;4606:51;;;;;857:6652;4606:51;;857:6652;;;;4606:51;;;857:6652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4606:51;;;;;;;;4450:214;:::o;4606:51::-;857:6652;4606:51;;857:6652;4606:51;;;;;;857:6652;4606:51;;;:::i;:::-;;;857:6652;;;;;;;;;;;4450:214::o;4606:51::-;;;-1:-1:-1;4606:51:97;;1243:204:1;1302:7;857:6652:97;;;;;;;1325:14:1;:::o;1298:143::-;857:6652:97;;;;1377:39:1;;857:6652:97;1377:39:1;;;857:6652:97;192:59:1;;;;857:6652:97;192:59:1;1377:39;;;857:6652:97;1377:39:1;;;;;;;857:6652:97;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;857:6652:97;1377:39:1;;;:::i;:::-;;;857:6652:97;;;;;1377:39:1;;;;;;-1:-1:-1;1377:39:1;;4670:617:97;;;4788:7;857:6652;;-1:-1:-1;857:6652:97;;;;4775:49;;857:6652;4775:49;;857:6652;4775:49;;;857:6652;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;857:6652:97;;;;;;;;;:::i;:::-;4775:49;857:6652;;4775:49;;;;;;;;4670:617;4850:31;;857:6652;4850:31;;;;;;:::i;:::-;857:6652;;4788:7;857:6652;;;;;;;;;;;4907:65;4951:4;;4907:65;;:::i;:::-;857:6652;;;2943:24:1;;;;857:6652:97;;2943:24:1;857:6652:97;2943:24:1;;;4775:49:97;2943:24:1;;857:6652:97;;;;;-1:-1:-1;2943:24:1;;;857:6652:97;2943:24:1;;;;;;;;4670:617:97;5099:13;2943:24:1;857:6652:97;;;;;;;;;;;;;5206:5;857:6652;5196:7;5048:65;4951:4;;5048:65;;:::i;5206:5::-;857:6652;;4788:7;857:6652;;2355:41:151;;;;;857:6652:97;;;;2355:41:151;857:6652:97;;;2355:41:151;;;;;857:6652:97;2355:41:151;;4775:49:97;2355:41:151;;857:6652:97;;;;;2943:24:1;857:6652:97;;;2355:41:151;;;;;;;;4670:617:97;;:::o;2355:41:151:-;;;;;;:::i;:::-;857:6652:97;;4670:617;:::o;2943:24:1:-;;;;;-1:-1:-1;2943:24:1;;:::i;:::-;-1:-1:-1;2943:24:1;;;;4775:49:97;;857:6652;4775:49;;857:6652;4775:49;;;;;;857:6652;4775:49;;;:::i;:::-;;;857:6652;;;;4775:49;-1:-1:-1;4850:31:97;4775:49;;;;;-1:-1:-1;4775:49:97;;5960:989;;6305:63;857:6652;;;;;;;:::i;:::-;6242:4;857:6652;;6259:3;6208:87;;;857:6652;6280:4;6208:87;;;857:6652;-1:-1:-1;6208:87:97;;;857:6652;;-1:-1:-1;857:6652:97;6318:7;857:6652;;;;;6305:63;;;;;;;857:6652;6305:63;;;;;;;:::i;:::-;;;;;;;;;6412:60;6305:63;857:6652;6305:63;;;;;5960:989;857:6652;;-1:-1:-1;857:6652:97;6318:7;857:6652;;;;;6412:60;;;;;;;857:6652;6412:60;;;6305:63;6412:60;;;:::i;6305:63::-;;;;;;;;;;;;;:::i;:::-;;;;1711:436:65;1853:233;1711:436;;;1853:233;1711:436;1853:233;-1:-1:-1;1853:233:65;;;;2117:21;1853:233;-1:-1:-1;1853:233:65;;857:6652:97;2117:21:65;;;;;857:6652:97;2117:21:65;;;;;857:6652:97;;2117:21:65;;;;;;;-1:-1:-1;2117:21:65;;;2095:45;1711:436;:::o;2117:21::-;;;1853:233;2117:21;;1853:233;2117:21;;;;;;857:6652:97;2117:21:65;;;:::i;:::-;;;857:6652:97;;;;;1711:436:65;:::o;2117:21::-;;;-1:-1:-1;2117:21:65;;857:6652:97;;;;;;;;;;;;;;;;;;:::o;979:810:151:-;;;;857:6652:97;;4998:58:107;857:6652:97;;;;;1384:31:151;;857:6652:97;;;1384:31:151;;;;;857:6652:97;1384:31:151;;857:6652:97;1384:31:151;;;;;;;;1340:443;979:810::o;1384:31::-;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;979:810::o;1384:31::-;;;;;1340:443;857:6652:97;;;;;1446:22:151;;;;;;857:6652:97;;1446:22:151;857:6652:97;1446:22:151;;;;;;857:6652:97;1446:22:151;1255:528;;;1446:22;1255:528;;;;1446:22;;;;;;;;1340:443;-1:-1:-1;857:6652:97;;1503:4:151;;1486:22;;1503:4;;857:6652:97;;;1528:86:151;857:6652:97;;;1528:86:151;;;;;857:6652:97;1528:86:151;;1446:22;1528:86;;857:6652:97;;1446:22:151;857:6652:97;;;;;;;1528:86:151;;;;;;;857:6652:97;1528:86:151;;;;;1482:261;;;1446:22;857:6652:97;;1756:16:151;;;;857:6652:97;1756:16:151;;;;;;;;;;;;1340:443;979:810::o;1756:16::-;857:6652:97;;;;;;;;;;1528:86:151;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;857:6652:97;;;;;;;;;1482:261:151;857:6652:97;;;1653:75:151;857:6652:97;;;;1653:75:151;;;;;857:6652:97;1653:75:151;;;1446:22;1653:75;;857:6652:97;1446:22:151;857:6652:97;;;1653:75:151;;;;;;;857:6652:97;1653:75:151;;;;;1482:261;;;;1653:75;;;;;;;;;;;;;:::i;:::-;;;;;1446:22;;;;;1255:528;1446:22;;:::i;:::-;1255:528;;857:6652:97;1446:22:151;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","_addLiquidity((address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"2adbda2a","_donate((address,address,uint24,int24,address),uint256,uint256,bytes)":"59b1290e","_initialize((address,address,uint24,int24,address),uint160)":"6bc141f1","_removeLiquidity((address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"e4660d8c","_swap((address,address,uint24,int24,address),(bool,int256,uint160),bytes)":"e30eb84e","afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"9f063efc","afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"e1b4af69","afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)":"6fe7e6eb","afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"6c2bbe7e","afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)":"b47b2fb1","beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"259982e5","beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"b6a8b0fa","beforeInitialize(address,(address,address,uint24,int24,address),uint160)":"dc98354e","beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"21d0ee70","beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)":"575e24b4","counter()":"61bc221a","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setManager(address)":"d0ebdbe7","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HookNotImplemented\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"_addLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amt0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amt1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"_donate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"_initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"_removeLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"_swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amt0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amt1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"name\":\"afterInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterSwap\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"int128\",\"name\":\"\",\"type\":\"int128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amt0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amt1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"beforeInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeSwap\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BeforeSwapDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"setManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/SkipCallsTestHook.sol\":\"SkipCallsTestHook\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557\",\"dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f\",\"dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1\",\"dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"src/libraries/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"src/libraries/Hooks.sol\":{\"keccak256\":\"0xd679b4b2d429689bc44f136050ebc958fb2d7d0d3a3c7b3e48c08ab4fba09aaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287190cb72840e5eb63cc7a8a1d0b9150af17d8e4ea0323f47c7e7928f2033cb\",\"dweb:/ipfs/QmVfqWBnAQM2jUcuREDdvjcP21gNuLU35CoL3NG5CEhNcx\"]},\"src/libraries/LPFeeLibrary.sol\":{\"keccak256\":\"0xbf6914e01014e7c1044111feb7df7a3d96bb503b3da827ad8464b1955580d13b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33823c20a91882c9aacdcbb02f0558c05209f4d5954aa6dd4fa17c95664db475\",\"dweb:/ipfs/QmR7owkFgpfztpp1QUg3ut3nw9iPVQqLGP4hzgmZtRUQ2J\"]},\"src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"src/libraries/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"src/libraries/ParseBytes.sol\":{\"keccak256\":\"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17\",\"dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa\"]},\"src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"src/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"src/test/BaseTestHooks.sol\":{\"keccak256\":\"0x8bb1b533b9df117bc4c85ef9d4c2afa7758771581a752e0a2a69dcae1041e546\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://eebf2728b8bda26bfd0e8c9726950f9cad3f2b8ffa5951117f2c2a9534e37ba6\",\"dweb:/ipfs/QmPCbUDp3e3sF5EPfte4v3VEF9Lhz8db6jLhZQJxXDvBSE\"]},\"src/test/SkipCallsTestHook.sol\":{\"keccak256\":\"0x29620b921dfc967de315c1e01f0b16b8c6dfb8102d1c23b1308939622bbd4c80\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://66ab08a2e699a964e6850f40125a8dc014987c81d1be8c071fff6e65250240bf\",\"dweb:/ipfs/QmdLLJifFYmqaGWwLZwNkQvejJ8MieDY8HbR9BaSzRT632\"]},\"src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"test/utils/CurrencySettler.sol\":{\"keccak256\":\"0x2569dc02a637111de76e8e8c65f27510e7608273c19652fe6d31d76c983c19b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9fbc9085e011e7208505c8ff7d402e4dba13b5105b25a24eac85b4a5921de58\",\"dweb:/ipfs/QmPyBSC5JvZrePDjdt2AiNt3EEUXgxX1orvTX1JZidz9PP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"HookNotImplemented"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct PoolKey","name":"key","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":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"_addLiquidity"},{"inputs":[{"internalType":"struct PoolKey","name":"key","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":"amt0","type":"uint256"},{"internalType":"uint256","name":"amt1","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"_donate"},{"inputs":[{"internalType":"struct PoolKey","name":"key","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":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"_initialize"},{"inputs":[{"internalType":"struct PoolKey","name":"key","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":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"_removeLiquidity"},{"inputs":[{"internalType":"struct PoolKey","name":"key","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":"struct SwapParams","name":"params","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"_swap"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"amt0","type":"uint256"},{"internalType":"uint256","name":"amt1","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"struct SwapParams","name":"params","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"amt0","type":"uint256"},{"internalType":"uint256","name":"amt1","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"struct PoolKey","name":"key","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":"struct SwapParams","name":"params","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"counter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract IPoolManager","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setManager"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/"],"optimizer":{"enabled":true,"runs":44444444},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/test/SkipCallsTestHook.sol":"SkipCallsTestHook"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de","urls":["bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557","dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf","urls":["bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f","dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e","urls":["bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1","dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"src/libraries/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"src/libraries/Hooks.sol":{"keccak256":"0xd679b4b2d429689bc44f136050ebc958fb2d7d0d3a3c7b3e48c08ab4fba09aaa","urls":["bzz-raw://287190cb72840e5eb63cc7a8a1d0b9150af17d8e4ea0323f47c7e7928f2033cb","dweb:/ipfs/QmVfqWBnAQM2jUcuREDdvjcP21gNuLU35CoL3NG5CEhNcx"],"license":"MIT"},"src/libraries/LPFeeLibrary.sol":{"keccak256":"0xbf6914e01014e7c1044111feb7df7a3d96bb503b3da827ad8464b1955580d13b","urls":["bzz-raw://33823c20a91882c9aacdcbb02f0558c05209f4d5954aa6dd4fa17c95664db475","dweb:/ipfs/QmR7owkFgpfztpp1QUg3ut3nw9iPVQqLGP4hzgmZtRUQ2J"],"license":"MIT"},"src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"src/libraries/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"src/libraries/ParseBytes.sol":{"keccak256":"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15","urls":["bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17","dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa"],"license":"MIT"},"src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"src/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"license":"MIT"},"src/test/BaseTestHooks.sol":{"keccak256":"0x8bb1b533b9df117bc4c85ef9d4c2afa7758771581a752e0a2a69dcae1041e546","urls":["bzz-raw://eebf2728b8bda26bfd0e8c9726950f9cad3f2b8ffa5951117f2c2a9534e37ba6","dweb:/ipfs/QmPCbUDp3e3sF5EPfte4v3VEF9Lhz8db6jLhZQJxXDvBSE"],"license":"UNLICENSED"},"src/test/SkipCallsTestHook.sol":{"keccak256":"0x29620b921dfc967de315c1e01f0b16b8c6dfb8102d1c23b1308939622bbd4c80","urls":["bzz-raw://66ab08a2e699a964e6850f40125a8dc014987c81d1be8c071fff6e65250240bf","dweb:/ipfs/QmdLLJifFYmqaGWwLZwNkQvejJ8MieDY8HbR9BaSzRT632"],"license":"UNLICENSED"},"src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"test/utils/CurrencySettler.sol":{"keccak256":"0x2569dc02a637111de76e8e8c65f27510e7608273c19652fe6d31d76c983c19b6","urls":["bzz-raw://e9fbc9085e011e7208505c8ff7d402e4dba13b5105b25a24eac85b4a5921de58","dweb:/ipfs/QmPyBSC5JvZrePDjdt2AiNt3EEUXgxX1orvTX1JZidz9PP"],"license":"MIT"}},"version":1},"id":97}