{"abi":[{"type":"constructor","inputs":[{"name":"_poolManager","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactInput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactInputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","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":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactOutput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"_quoteExactOutputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","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":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"quoteExactInput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteExactInputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","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":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteExactOutput","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactParams","components":[{"name":"exactCurrency","type":"address","internalType":"Currency"},{"name":"path","type":"tuple[]","internalType":"struct PathKey[]","components":[{"name":"intermediateCurrency","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"},{"name":"hookData","type":"bytes","internalType":"bytes"}]},{"name":"exactAmount","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteExactOutputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct IV4Quoter.QuoteExactSingleParams","components":[{"name":"poolKey","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":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactAmount","type":"uint128","internalType":"uint128"},{"name":"hookData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"error","name":"NotEnoughLiquidity","inputs":[{"name":"poolId","type":"bytes32","internalType":"PoolId"}]},{"type":"error","name":"NotPoolManager","inputs":[]},{"type":"error","name":"NotSelf","inputs":[]},{"type":"error","name":"QuoteSwap","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UnexpectedCallSuccess","inputs":[]},{"type":"error","name":"UnexpectedRevertBytes","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}]}],"bytecode":{"object":"0x60a034607b57601f61187a38819003918201601f19168301916001600160401b03831184841017607f57808492602094604052833981010312607b57516001600160a01b0381168103607b576080526040516117e6908161009482396080518181816101c0015281816103490152818161069401526115bb0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063147d2af9146109865780635873307314610911578063595323f5146108655780636a36a38c1461073a57806391dd734614610610578063aa2f150114610463578063aa9d21cb146103ee578063ca253dc914610254578063d737d0c7146101e4578063dc4c90d3146101765763eebe0c6a14610092575f80fd5b34610172576100a036610ea1565b30330361014a578061010c61010661010160a06fffffffffffffffffffffffffffffffff9501936100d085611227565b6100e9876100e060c08501611234565b16600f0b6113b3565b906100f760e0840184611251565b9490933690610d54565b611475565b91611227565b156101405781165b7fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60801d8116610114565b7f29c3b7ee000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f80fd5b34610172575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610172575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760207f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461017257604061026436610b7d565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917f6a36a38c00000000000000000000000000000000000000000000000000000000602084015260248301610fc3565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610a60565b8651809381927f48c89491000000000000000000000000000000000000000000000000000000008352602060048401526024830190610f11565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af190816103ce575b506103c657505061039561038f61038761114a565b925a90611179565b916113df565b905b5f7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d82519182526020820152f35b909150610397565b6103e9903d805f833e6103e18183610a60565b8101906110e7565b610372565b346101725760406103fe36610dbd565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917feebe0c6a00000000000000000000000000000000000000000000000000000000602084015260248301611186565b346101725761047136610f54565b30330361014a576020810161048681836112d1565b905061049460408401611234565b9161049e84611325565b9190815b6104e4576fffffffffffffffffffffffffffffffff847fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9091926104f182866112d1565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85018581116105c0576105496105426fffffffffffffffffffffffffffffffff926105909661056595611346565b97886116b2565b939061055860808a018a611251565b9390921690851590611475565b90156105ed5761057790600f0b6112a2565b6fffffffffffffffffffffffffffffffff165b93611325565b9180156105c0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190816104a2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6105f99060801d6112a2565b6fffffffffffffffffffffffffffffffff1661058a565b346101725760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043567ffffffffffffffff811161017257366023820112156101725780600401359067ffffffffffffffff82116101725736602483830101116101725773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610712575f6024819284806040519384930183378101838152039082305af16106dd61114a565b906106ea57602081519101fd5b7fe0752a5a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101725761074836610f54565b30330361014a57602081019061075e82826112d1565b905061076c60408301611234565b9161077681611325565b935f915b8383106107bf576fffffffffffffffffffffffffffffffff857fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b909192936108406fffffffffffffffffffffffffffffffff61082161080c6001946107fe6107f78a6107f18b8b6112d1565b90611346565b9b8c6116b2565b948593919216600f0b6113b3565b61081960808d018d611251565b939092611475565b901561084b576fffffffffffffffffffffffffffffffff165b96611325565b95949301919061077a565b60801d6fffffffffffffffffffffffffffffffff1661083a565b346101725761087336610ea1565b30330361014a57806108bf61010661010160a06fffffffffffffffffffffffffffffffff9501936108a385611227565b866108b060c08401611234565b16906100f760e0840184611251565b156108fe576108d09060801d6112a2565b81167fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61090a90600f0b6112a2565b8116610114565b3461017257604061092136610dbd565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917f595323f500000000000000000000000000000000000000000000000000000000602084015260248301611186565b3461017257604061099636610b7d565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917faa2f150100000000000000000000000000000000000000000000000000000000602084015260248301610fc3565b6060810190811067ffffffffffffffff821117610a1757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60a0810190811067ffffffffffffffff821117610a1757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610a1757604052565b359073ffffffffffffffffffffffffffffffffffffffff8216820361017257565b359062ffffff8216820361017257565b35908160020b820361017257565b67ffffffffffffffff8111610a1757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561017257803590610b3182610ae0565b92610b3f6040519485610a60565b8284526020838301011161017257815f926020809301838601378301015290565b35906fffffffffffffffffffffffffffffffff8216820361017257565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101725760043567ffffffffffffffff81116101725760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82840301126101725760405191610bf2836109fb565b610bfe82600401610aa1565b8352602482013567ffffffffffffffff811161017257820190806023830112156101725760048201359167ffffffffffffffff8311610a17578260051b60405193610c4c6020830186610a60565b845281016024019060208401908383116101725760248101915b838310610c8b5750505050506020830152610c8390604401610b60565b604082015290565b823567ffffffffffffffff8111610172576004908301019060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083880301126101725760405190610cdc82610a44565b610ce860208401610aa1565b8252610cf660408401610ac2565b6020830152610d0760608401610ad2565b6040830152610d1860808401610aa1565b606083015260a08301359167ffffffffffffffff831161017257610d4488602080969581960101610b1a565b6080820152815201920191610c66565b91908260a091031261017257604051610d6c81610a44565b6080610db8818395610d7d81610aa1565b8552610d8b60208201610aa1565b6020860152610d9c60408201610ac2565b6040860152610dad60608201610ad2565b606086015201610aa1565b910152565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101725760043567ffffffffffffffff8111610172576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc828403011261017257604051916080830183811067ffffffffffffffff821117610a1757604052610e518183600401610d54565b835260a48201358015158103610172576020840152610e7260c48301610b60565b604084015260e48201359167ffffffffffffffff831161017257610e999201600401610b1a565b606082015290565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610172576004359067ffffffffffffffff8211610172577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82610100920301126101725760040190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610172576004359067ffffffffffffffff8211610172577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc826060920301126101725760040190565b60208152608081019173ffffffffffffffffffffffffffffffffffffffff815116602083015260208101519260606040840152835180915260a0830190602060a08260051b8601019501915f905b82821061103b57505050506fffffffffffffffffffffffffffffffff604060609201511691015290565b909192956020806110d9837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a6001960301865260a060808c5173ffffffffffffffffffffffffffffffffffffffff815116845262ffffff868201511686850152604081015160020b604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151918160808201520190610f11565b980192019201909291611011565b6020818303126101725780519067ffffffffffffffff8211610172570181601f820112156101725780519061111b82610ae0565b926111296040519485610a60565b8284526020838301011161017257815f9260208093018386015e8301015290565b3d15611174573d9061115b82610ae0565b916111696040519384610a60565b82523d5f602084013e565b606090565b919082039182116105c057565b610120606061122493602084526111eb60208501825173ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b6020810151151560c08501526fffffffffffffffffffffffffffffffff60408201511660e0850152015191610100808201520190610f11565b90565b3580151581036101725790565b356fffffffffffffffffffffffffffffffff811681036101725790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610172570180359067ffffffffffffffff82116101725760200191813603831361017257565b600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081146105c0575f0390565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610172570180359067ffffffffffffffff821161017257602001918160051b3603831361017257565b3573ffffffffffffffffffffffffffffffffffffffff811681036101725790565b91908110156113865760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6181360301821215610172570190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f800000000000000000000000000000000000000000000000000000000000000081146105c0575f0390565b7fecbd9804000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000060208301511603611433576024015190565b611471906040519182917f6190b2b0000000000000000000000000000000000000000000000000000000008352602060048401526024830190610f11565b0390fd5b929493908015611697576401000276a4915b8060405192611495846109fb565b1515978884526020840194868652604085019073ffffffffffffffffffffffffffffffffffffffff1681526040519586957ff3cd914c00000000000000000000000000000000000000000000000000000000875260048701611541908b73ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b51151560a48701525160c48601525173ffffffffffffffffffffffffffffffffffffffff1660e48501526101048401610120905281610124850152610144840137808201610144015f9052601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01681010361014401817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a6020945f91f190811561168c575f9161165a575b5080945f8312145f146116525760801d5b600f0b036116235750565b60a090207f7a5ed734000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b600f0b611618565b90506020813d602011611684575b8161167560209383610a60565b8101031261017257515f611607565b3d9150611668565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d2591611487565b905f60806040516116c281610a44565b82815282602082015282604082015282606082015201526116e282611325565b73ffffffffffffffffffffffffffffffffffffffff82169173ffffffffffffffffffffffffffffffffffffffff82168084105f146117ba575073ffffffffffffffffffffffffffffffffffffffff905b1680921492602081013562ffffff8116809103610172576040820135918260020b80930361017257606001359273ffffffffffffffffffffffffffffffffffffffff84168094036101725773ffffffffffffffffffffffffffffffffffffffff90604051956117a087610a44565b865216602085015260408401526060830152608082015291565b91505073ffffffffffffffffffffffffffffffffffffffff829161173256fea164736f6c634300081a000a","sourceMap":"1051:6055:128:-:0;;;;;;;;;;;;;-1:-1:-1;;1051:6055:128;;;;-1:-1:-1;;;;;1051:6055:128;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1051:6055:128;;;;;;782:26:96;;1051:6055:128;;;;;;;;782:26:96;1051:6055:128;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1051:6055:128;;;;;;-1:-1:-1;1051:6055:128;;;;;-1:-1:-1;1051:6055:128","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063147d2af9146109865780635873307314610911578063595323f5146108655780636a36a38c1461073a57806391dd734614610610578063aa2f150114610463578063aa9d21cb146103ee578063ca253dc914610254578063d737d0c7146101e4578063dc4c90d3146101765763eebe0c6a14610092575f80fd5b34610172576100a036610ea1565b30330361014a578061010c61010661010160a06fffffffffffffffffffffffffffffffff9501936100d085611227565b6100e9876100e060c08501611234565b16600f0b6113b3565b906100f760e0840184611251565b9490933690610d54565b611475565b91611227565b156101405781165b7fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60801d8116610114565b7f29c3b7ee000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f80fd5b34610172575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610172575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760207f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5c73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461017257604061026436610b7d565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917f6a36a38c00000000000000000000000000000000000000000000000000000000602084015260248301610fc3565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610a60565b8651809381927f48c89491000000000000000000000000000000000000000000000000000000008352602060048401526024830190610f11565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af190816103ce575b506103c657505061039561038f61038761114a565b925a90611179565b916113df565b905b5f7f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d82519182526020820152f35b909150610397565b6103e9903d805f833e6103e18183610a60565b8101906110e7565b610372565b346101725760406103fe36610dbd565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917feebe0c6a00000000000000000000000000000000000000000000000000000000602084015260248301611186565b346101725761047136610f54565b30330361014a576020810161048681836112d1565b905061049460408401611234565b9161049e84611325565b9190815b6104e4576fffffffffffffffffffffffffffffffff847fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b9091926104f182866112d1565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85018581116105c0576105496105426fffffffffffffffffffffffffffffffff926105909661056595611346565b97886116b2565b939061055860808a018a611251565b9390921690851590611475565b90156105ed5761057790600f0b6112a2565b6fffffffffffffffffffffffffffffffff165b93611325565b9180156105c0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190816104a2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6105f99060801d6112a2565b6fffffffffffffffffffffffffffffffff1661058a565b346101725760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043567ffffffffffffffff811161017257366023820112156101725780600401359067ffffffffffffffff82116101725736602483830101116101725773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610712575f6024819284806040519384930183378101838152039082305af16106dd61114a565b906106ea57602081519101fd5b7fe0752a5a000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101725761074836610f54565b30330361014a57602081019061075e82826112d1565b905061076c60408301611234565b9161077681611325565b935f915b8383106107bf576fffffffffffffffffffffffffffffffff857fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b909192936108406fffffffffffffffffffffffffffffffff61082161080c6001946107fe6107f78a6107f18b8b6112d1565b90611346565b9b8c6116b2565b948593919216600f0b6113b3565b61081960808d018d611251565b939092611475565b901561084b576fffffffffffffffffffffffffffffffff165b96611325565b95949301919061077a565b60801d6fffffffffffffffffffffffffffffffff1661083a565b346101725761087336610ea1565b30330361014a57806108bf61010661010160a06fffffffffffffffffffffffffffffffff9501936108a385611227565b866108b060c08401611234565b16906100f760e0840184611251565b156108fe576108d09060801d6112a2565b81167fecbd9804000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b61090a90600f0b6112a2565b8116610114565b3461017257604061092136610dbd565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917f595323f500000000000000000000000000000000000000000000000000000000602084015260248301611186565b3461017257604061099636610b7d565b337f0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87a5d5f8061032f5f6102c96102f55a9688519283917faa2f150100000000000000000000000000000000000000000000000000000000602084015260248301610fc3565b6060810190811067ffffffffffffffff821117610a1757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60a0810190811067ffffffffffffffff821117610a1757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610a1757604052565b359073ffffffffffffffffffffffffffffffffffffffff8216820361017257565b359062ffffff8216820361017257565b35908160020b820361017257565b67ffffffffffffffff8111610a1757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561017257803590610b3182610ae0565b92610b3f6040519485610a60565b8284526020838301011161017257815f926020809301838601378301015290565b35906fffffffffffffffffffffffffffffffff8216820361017257565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101725760043567ffffffffffffffff81116101725760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82840301126101725760405191610bf2836109fb565b610bfe82600401610aa1565b8352602482013567ffffffffffffffff811161017257820190806023830112156101725760048201359167ffffffffffffffff8311610a17578260051b60405193610c4c6020830186610a60565b845281016024019060208401908383116101725760248101915b838310610c8b5750505050506020830152610c8390604401610b60565b604082015290565b823567ffffffffffffffff8111610172576004908301019060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083880301126101725760405190610cdc82610a44565b610ce860208401610aa1565b8252610cf660408401610ac2565b6020830152610d0760608401610ad2565b6040830152610d1860808401610aa1565b606083015260a08301359167ffffffffffffffff831161017257610d4488602080969581960101610b1a565b6080820152815201920191610c66565b91908260a091031261017257604051610d6c81610a44565b6080610db8818395610d7d81610aa1565b8552610d8b60208201610aa1565b6020860152610d9c60408201610ac2565b6040860152610dad60608201610ad2565b606086015201610aa1565b910152565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101725760043567ffffffffffffffff8111610172576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc828403011261017257604051916080830183811067ffffffffffffffff821117610a1757604052610e518183600401610d54565b835260a48201358015158103610172576020840152610e7260c48301610b60565b604084015260e48201359167ffffffffffffffff831161017257610e999201600401610b1a565b606082015290565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610172576004359067ffffffffffffffff8211610172577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82610100920301126101725760040190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610172576004359067ffffffffffffffff8211610172577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc826060920301126101725760040190565b60208152608081019173ffffffffffffffffffffffffffffffffffffffff815116602083015260208101519260606040840152835180915260a0830190602060a08260051b8601019501915f905b82821061103b57505050506fffffffffffffffffffffffffffffffff604060609201511691015290565b909192956020806110d9837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a6001960301865260a060808c5173ffffffffffffffffffffffffffffffffffffffff815116845262ffffff868201511686850152604081015160020b604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151918160808201520190610f11565b980192019201909291611011565b6020818303126101725780519067ffffffffffffffff8211610172570181601f820112156101725780519061111b82610ae0565b926111296040519485610a60565b8284526020838301011161017257815f9260208093018386015e8301015290565b3d15611174573d9061115b82610ae0565b916111696040519384610a60565b82523d5f602084013e565b606090565b919082039182116105c057565b610120606061122493602084526111eb60208501825173ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b6020810151151560c08501526fffffffffffffffffffffffffffffffff60408201511660e0850152015191610100808201520190610f11565b90565b3580151581036101725790565b356fffffffffffffffffffffffffffffffff811681036101725790565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610172570180359067ffffffffffffffff82116101725760200191813603831361017257565b600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081146105c0575f0390565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610172570180359067ffffffffffffffff821161017257602001918160051b3603831361017257565b3573ffffffffffffffffffffffffffffffffffffffff811681036101725790565b91908110156113865760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6181360301821215610172570190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f800000000000000000000000000000000000000000000000000000000000000081146105c0575f0390565b7fecbd9804000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000060208301511603611433576024015190565b611471906040519182917f6190b2b0000000000000000000000000000000000000000000000000000000008352602060048401526024830190610f11565b0390fd5b929493908015611697576401000276a4915b8060405192611495846109fb565b1515978884526020840194868652604085019073ffffffffffffffffffffffffffffffffffffffff1681526040519586957ff3cd914c00000000000000000000000000000000000000000000000000000000875260048701611541908b73ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b51151560a48701525160c48601525173ffffffffffffffffffffffffffffffffffffffff1660e48501526101048401610120905281610124850152610144840137808201610144015f9052601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01681010361014401817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a6020945f91f190811561168c575f9161165a575b5080945f8312145f146116525760801d5b600f0b036116235750565b60a090207f7a5ed734000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b600f0b611618565b90506020813d602011611684575b8161167560209383610a60565b8101031261017257515f611607565b3d9150611668565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d2591611487565b905f60806040516116c281610a44565b82815282602082015282604082015282606082015201526116e282611325565b73ffffffffffffffffffffffffffffffffffffffff82169173ffffffffffffffffffffffffffffffffffffffff82168084105f146117ba575073ffffffffffffffffffffffffffffffffffffffff905b1680921492602081013562ffffff8116809103610172576040820135918260020b80930361017257606001359273ffffffffffffffffffffffffffffffffffffffff84168094036101725773ffffffffffffffffffffffffffffffffffffffff90604051956117a087610a44565b865216602085015260408401526060830152608082015291565b91505073ffffffffffffffffffffffffffffffffffffffff829161173256fea164736f6c634300081a000a","sourceMap":"1051:6055:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1228:97:144;1051:6055:128;1228:97:144;;;1051:6055:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1065:4:92;1043:10;:27;1039:49;;4955:17:128;5108;4933:94;1051:6055;4955:17;1051:6055;4955:17;;;;;;:::i;:::-;4974:35;4989:18;;;;;;:::i;:::-;1051:6055;;;4974:35;:::i;:::-;5011:15;;1051:6055;5011:15;;;;:::i;:::-;1051:6055;;;;;;:::i;:::-;4933:94;:::i;:::-;5108:17;;:::i;:::-;:79;;;1051:6055;;5108:79;812:22:144;1051:6055:128;812:22:144;1051:6055:128;;;;;812:22:144;5108:79:128;2052:83:78;;1051:6055:128;;5108:79;;1039:49:92;1079:9;1051:6055:128;1079:9:92;1051:6055:128;;1079:9:92;1051:6055:128;;;;;;;;;;;;;;;;;;;411:41:96;1051:6055:128;;;;;;;;;;;;;;;;661:64:139;;1051:6055:128;;;;;;;;;;;;;;;;:::i;:::-;1252:10;522:63:139;;1051:6055:128;;;;2192:47;;2150:9;1051:6055;;;2192:47;;;1051:6055;2192:47;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1051:6055;;2173:67;;;;1051:6055;2173:67;;2192:47;1051:6055;2173:67;;1051:6055;2192:47;1051:6055;;;;:::i;:::-;2173:67;:11;;1051:6055;2173:11;1051:6055;2173:67;;;;;;1051:6055;-1:-1:-1;2169:306:128;;2252:223;;2439:25;2308:21;2252:223;;:::i;:::-;2320:9;;2308:21;;:::i;:::-;2439:25;;:::i;:::-;2169:306;;1051:6055;522:63:139;;1051:6055:128;;;;;2192:47;1051:6055;;;;2169:306;;;;;;2173:67;;;;;1051:6055;2173:67;;;;;;:::i;:::-;;;;;:::i;:::-;;;1051:6055;;;;;;;;:::i;:::-;1252:10;522:63:139;;1051:6055:128;;;;1633:53;;1591:9;1051:6055;;;1633:53;;;1051:6055;1633:53;;;;;;;;:::i;1051:6055::-;;;;;;;:::i;:::-;1065:4:92;1043:10;:27;1039:49;;5494:11:128;;;;;;;:::i;:::-;5574:18;;;1051:6055;5574:18;;;:::i;:::-;5628:20;;;;:::i;:::-;5698:22;5693:460;;5722:5;;;1051:6055;812:22:144;;1051:6055:128;812:22:144;1051:6055:128;;;;;812:22:144;5729:3:128;5758:11;;;;;;;:::i;:::-;1051:6055;;;;;;;;;;5834:47;5758:18;1051:6055;5758:18;6114:28;5758:18;5908:73;5758:18;;:::i;:::-;5834:47;;;:::i;:::-;5964:16;;;;;;;;:::i;:::-;1051:6055;;;;5923:11;;;5908:73;;:::i;:::-;6008:74;;;;6029:20;2241:89:78;;;6029:20:128;:::i;:::-;1051:6055;;6008:74;6114:28;;:::i;:::-;5729:3;1051:6055;;;;;;5698:22;;;;1051:6055;;;;;;;;;;6008:74;6061:20;2052:83:78;5964:16:128;2052:83:78;6061:20:128;:::i;:::-;1051:6055;;6008:74;;1051:6055;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;672:11:96;1051:6055:128;650:10:96;:34;646:63;;1051:6055:128;;;;;;;;;;;;;;;;;;;1251:24:92;1259:4;;;1251:24;;;;:::i;:::-;1403:43;;;1051:6055:128;1228:97:144;;;;;1403:43:92;1423:23;1051:6055:128;1423:23:92;1051:6055:128;;1423:23:92;646:63:96;693:16;1051:6055:128;693:16:96;1051:6055:128;;693:16:96;1051:6055:128;;;;;;;:::i;:::-;1065:4:92;1043:10;:27;1039:49;;3870:11:128;;;;;;;;:::i;:::-;3949:18;;;1051:6055;3949:18;;;:::i;:::-;4002:20;;;;:::i;:::-;4072:13;1051:6055;4067:448;4087:14;;;;;;1051:6055;812:22:144;;1051:6055:128;812:22:144;1051:6055:128;;;;;812:22:144;4103:3:128;4132:11;;;;4476:28;1051:6055;4277:71;4304:25;1051:6055;4132:11;4204:46;4132:14;:11;;;;;:::i;:::-;:14;;:::i;:::-;4204:46;;;:::i;:::-;1051:6055;;;;;;;;4304:25;:::i;:::-;4331:16;;;;;;:::i;:::-;4277:71;;;;:::i;:::-;4374:72;;;;1051:6055;;4374:72;4476:28;;:::i;:::-;4103:3;4072:13;;1051:6055;;4072:13;;;4374:72;4331:16;2052:83:78;1051:6055:128;;4374:72;;1051:6055;;;;;;;:::i;:::-;1065:4:92;1043:10;:27;1039:49;;6602:17:128;6772;6580:94;1051:6055;6602:17;1051:6055;6602:17;;;;;;:::i;:::-;6636:18;;;;;;:::i;:::-;1051:6055;6658:15;;1051:6055;6658:15;;;;:::i;6772:17::-;:81;;;6800:20;2052:83:78;;;6800:20:128;:::i;:::-;1051:6055;;812:22:144;1051:6055:128;812:22:144;1051:6055:128;;;;;812:22:144;6772:81:128;6832:20;2241:89:78;;;6832:20:128;:::i;:::-;1051:6055;;6772:81;;1051:6055;;;;;;;;:::i;:::-;1252:10;522:63:139;;1051:6055:128;;;;2757:54;;2715:9;1051:6055;;;2757:54;;;1051:6055;2757:54;;;;;;;;:::i;1051:6055::-;;;;;;;;:::i;:::-;1252:10;522:63:139;;1051:6055:128;;;;3316:48;;3274:9;1051:6055;;;3316:48;;;1051:6055;3316:48;;;;;;;;:::i;1051:6055::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1051:6055:128;;;;;-1:-1:-1;1051:6055:128;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1051:6055:128;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1051:6055:128;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1051:6055:128;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1051:6055:128;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1051:6055:128;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;1488:689:144:-;1800:18;1051:6055:128;563:85:63;;;;1051:6055:128;1774:44:144;1770:111;;2083:88;;;1488:689;:::o;1770:111::-;1051:6055:128;;;;1841:29:144;;;;;;563:85:63;1841:29:144;;;1051:6055:128;;;;;;:::i;:::-;1841:29:144;;;1720:795:92;;;;;2098:70;;;;1862:10:72;2098:70:92;;1051:6055:128;;;;;;;:::i;:::-;;;1862:10:72;;;;1960:223:92;;;1862:10:72;;;;1051:6055:128;1960:223:92;;1051:6055:128;;;1862:10:72;;1051:6055:128;;1909:306:92;;;1051:6055:128;1909:306:92;;;;;1862:10:72;;;1051:6055:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1862:10:72;;1051:6055:128;;1862:10:72;;;1051:6055:128;1862:10:72;;;;1051:6055:128;1862:10:72;1051:6055:128;;1862:10:72;;;1051:6055:128;1862:10:72;;;;;;;;;;1051:6055:128;;;;;;;;;;-1:-1:-1;1051:6055:128;;;;;;1862:10:72;;1909:306:92;1051:6055:128;1909:306:92;:11;;1051:6055:128;;1909:306:92;;;1960:223;1909:306;-1:-1:-1;1909:306:92;;;;;;;-1:-1:-1;1909:306:92;;;2098:70;1897:318;;2306:81;-1:-1:-1;2322:19:92;;2307:35;2306:81;-1:-1:-1;;;2052:83:78;;2306:81:92;1051:6055:128;;2401:40:92;2397:112;;1720:795;:::o;2397:112::-;1862:10:72;357:173:81;;2464:34:92;-1:-1:-1;2464:34:92;1909:306;1051:6055:128;1862:10:72;-1:-1:-1;2464:34:92;2306:81;2241:89:78;;2306:81:92;;1909:306;;;1960:223;1909:306;;1960:223;1909:306;;;;;;1960:223;1909:306;;;:::i;:::-;;;1862:10:72;;;;;1909:306:92;;;;;;-1:-1:-1;1909:306:92;;;1051:6055:128;;;-1:-1:-1;1051:6055:128;;;;;2098:70:92;2042:49:72;2098:70:92;;;837:525:140;;-1:-1:-1;1051:6055:128;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1041:27:140;;;:::i;:::-;1051:6055:128;;;;;;;734:50:80;;;1133:80:140;1051:6055:128;;;1133:80:140;1051:6055:128;1133:80:140;;1051:6055:128;448:51:80;;;1310:10:140;1051:6055:128;1310:10:140;;1051:6055:128;;;;;;;;;;1322:18:140;;1051:6055:128;;;;;;;;;;;1342:12:140;1051:6055:128;;;;;;;;;;;;;;;;;;:::i;:::-;1862:10:72;;1051:6055:128;;1280:75:140;;1862:10:72;1051:6055:128;1280:75:140;;1051:6055:128;;1280:75:140;;1051:6055:128;;1280:75:140;;1862:10:72;837:525:140;:::o;1133:80::-;;;;1051:6055:128;1133:80:140;;;","linkReferences":{},"immutableReferences":{"52637":[{"start":448,"length":32},{"start":841,"length":32},{"start":1684,"length":32},{"start":5563,"length":32}]}},"methodIdentifiers":{"_quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))":"6a36a38c","_quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":"eebe0c6a","_quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))":"aa2f1501","_quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":"595323f5","msgSender()":"d737d0c7","poolManager()":"dc4c90d3","quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))":"ca253dc9","quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":"aa9d21cb","quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))":"147d2af9","quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":"58733073","unlockCallback(bytes)":"91dd7346"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"_poolManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"PoolId\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"NotEnoughLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"QuoteSwap\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedCallSuccess\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"UnexpectedRevertBytes\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"exactCurrency\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"intermediateCurrency\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct PathKey[]\",\"name\":\"path\",\"type\":\"tuple[]\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"}],\"internalType\":\"struct IV4Quoter.QuoteExactParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_quoteExactInput\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"poolKey\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct IV4Quoter.QuoteExactSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_quoteExactInputSingle\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"exactCurrency\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"intermediateCurrency\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct PathKey[]\",\"name\":\"path\",\"type\":\"tuple[]\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"}],\"internalType\":\"struct IV4Quoter.QuoteExactParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_quoteExactOutput\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"poolKey\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct IV4Quoter.QuoteExactSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"_quoteExactOutputSingle\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"exactCurrency\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"intermediateCurrency\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct PathKey[]\",\"name\":\"path\",\"type\":\"tuple[]\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"}],\"internalType\":\"struct IV4Quoter.QuoteExactParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"quoteExactInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasEstimate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"poolKey\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct IV4Quoter.QuoteExactSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"quoteExactInputSingle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasEstimate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"exactCurrency\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"intermediateCurrency\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct PathKey[]\",\"name\":\"path\",\"type\":\"tuple[]\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"}],\"internalType\":\"struct IV4Quoter.QuoteExactParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"quoteExactOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasEstimate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"poolKey\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"exactAmount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"internalType\":\"struct IV4Quoter.QuoteExactSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"quoteExactOutputSingle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasEstimate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"These functions are not marked view because they rely on calling non-view functions and reverting to compute the result. They are also not gas efficient and should not be called on-chain.\",\"kind\":\"dev\",\"methods\":{\"_quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))\":{\"details\":\"external function called within the _unlockCallback, to simulate an exact input swap, then revert with the result\"},\"_quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))\":{\"details\":\"external function called within the _unlockCallback, to simulate a single-hop exact input swap, then revert with the result\"},\"_quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))\":{\"details\":\"external function called within the _unlockCallback, to simulate an exact output swap, then revert with the result\"},\"_quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))\":{\"details\":\"external function called within the _unlockCallback, to simulate a single-hop exact output swap, then revert with the result\"},\"msgSender()\":{\"details\":\"Uniswap v4 periphery contracts implement a callback pattern which lose the original msg.sender caller context. This view function provides a way for integrating contracts (e.g. hooks) to access the original caller address.\",\"returns\":{\"_0\":\"The address of the original caller\"}},\"quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))\":{\"params\":{\"params\":\"the params for the quote, encoded as 'QuoteExactParams' currencyIn The input currency of the swap path The path of the swap encoded as PathKeys that contains currency, fee, tickSpacing, and hook info exactAmount The desired input amount\"},\"returns\":{\"amountOut\":\"The output quote for the exactIn swap\",\"gasEstimate\":\"Estimated gas units used for the swap\"}},\"quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))\":{\"params\":{\"params\":\"The params for the quote, encoded as `QuoteExactSingleParams` poolKey The key for identifying a V4 pool zeroForOne If the swap is from currency0 to currency1 exactAmount The desired input amount hookData arbitrary hookData to pass into the associated hooks\"},\"returns\":{\"amountOut\":\"The output quote for the exactIn swap\",\"gasEstimate\":\"Estimated gas units used for the swap\"}},\"quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))\":{\"params\":{\"params\":\"the params for the quote, encoded as 'QuoteExactParams' currencyOut The output currency of the swap path The path of the swap encoded as PathKeys that contains currency, fee, tickSpacing, and hook info exactAmount The desired output amount\"},\"returns\":{\"amountIn\":\"The input quote for the exactOut swap\",\"gasEstimate\":\"Estimated gas units used for the swap\"}},\"quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))\":{\"params\":{\"params\":\"The params for the quote, encoded as `QuoteExactSingleParams` poolKey The key for identifying a V4 pool zeroForOne If the swap is from currency0 to currency1 exactAmount The desired output amount hookData arbitrary hookData to pass into the associated hooks\"},\"returns\":{\"amountIn\":\"The input quote for the exactOut swap\",\"gasEstimate\":\"Estimated gas units used for the swap\"}},\"unlockCallback(bytes)\":{\"details\":\"We force the onlyPoolManager modifier by exposing a virtual function after the onlyPoolManager check.\",\"params\":{\"data\":\"The data that was passed to the call to unlock\"},\"returns\":{\"_0\":\"Any data that you want to be returned from the unlock call\"}}},\"title\":\"V4Quoter\",\"version\":1},\"userdoc\":{\"errors\":{\"NotPoolManager()\":[{\"notice\":\"Thrown when the caller is not PoolManager\"}],\"QuoteSwap(uint256)\":[{\"notice\":\"error thrown containing the quote as the data, to be caught and parsed later\"}],\"UnexpectedRevertBytes(bytes)\":[{\"notice\":\"error thrown when invalid revert bytes are thrown by the quote\"}]},\"kind\":\"user\",\"methods\":{\"msgSender()\":{\"notice\":\"Returns the address of the original caller (msg.sender)\"},\"poolManager()\":{\"notice\":\"The Uniswap v4 PoolManager contract\"},\"quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))\":{\"notice\":\"Returns the delta amounts along the swap path for a given exact input swap\"},\"quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))\":{\"notice\":\"Returns the delta amounts for a given exact input swap of a single pool\"},\"quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))\":{\"notice\":\"Returns the delta amounts along the swap path for a given exact output swap\"},\"quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))\":{\"notice\":\"Returns the delta amounts for a given exact output swap of a single pool\"},\"unlockCallback(bytes)\":{\"notice\":\"Called by the pool manager on `msg.sender` when the manager is unlocked\"}},\"notice\":\"Supports quoting the delta amounts for exact input or exact output swaps.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lens/V4Quoter.sol\":\"V4Quoter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/\",\":@uniswap/v4-core/=lib/v4-core/\",\":ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/v4-core/lib/forge-std/src/\",\":hardhat/=lib/v4-core/node_modules/hardhat/\",\":openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/v4-core/lib/solmate/\",\":v4-core/=lib/v4-core/src/\"],\"viaIR\":true},\"sources\":{\"lib/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"lib/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"lib/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"lib/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol\":{\"keccak256\":\"0x58c82f2bd9d7c097ed09bd0991fedc403b0ec270eb3d0158bfb095c06a03d719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91168ca26a10980df2cdc3fbfe8ddf372c002b7ef19e3c59a0c9870d64198f1b\",\"dweb:/ipfs/QmUSpaM825vd1SwvF38esgbdLgYiPwefKaFERTWvUi6uSK\"]},\"lib/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"lib/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"lib/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"lib/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"lib/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"lib/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"lib/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"lib/v4-core/src/libraries/ParseBytes.sol\":{\"keccak256\":\"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17\",\"dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa\"]},\"lib/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"lib/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"lib/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"lib/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"lib/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"lib/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"lib/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"lib/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"lib/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"lib/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"src/base/BaseV4Quoter.sol\":{\"keccak256\":\"0xd9bd9622e865f558e6e8a98b80c232c945fb8eb99a914fc10d99ee78031eccf4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ae21737b7abc8de8727c0af1a27ff3fb9ef87e367a0775f5bd34bc343287b64\",\"dweb:/ipfs/Qmb8ci92QrwhzLvWkYqB3Ry8a7BySg2DbGh8sSkD5nmQVm\"]},\"src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"src/base/SafeCallback.sol\":{\"keccak256\":\"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173\",\"dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT\"]},\"src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"src/interfaces/IMsgSender.sol\":{\"keccak256\":\"0xcc7d4e3f2fde34cf1ad9f05a8e43977e04d19624f71eb8a8c295feaf64b362a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e02044b5e19cc9ca24d23f55667142fde6daefba66408b56c4f620b625fc189\",\"dweb:/ipfs/QmUqWdRBqWi2tZkNAPhzLZbknP26TZbD8iRQMd3fdZGFgi\"]},\"src/interfaces/IV4Quoter.sol\":{\"keccak256\":\"0x97f4f76c2cb225fbfef8f77f7b87d2084dd51fa54e57b4353d095856cea20711\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebac51d87fa46b9eb903e73f7c21dc423f586e5ab7cebb29d573fa52fb6a7f5c\",\"dweb:/ipfs/QmbdehsxARB87bDN9pgHsnDmhop48QfWHdcHMxhxM1tXrT\"]},\"src/lens/V4Quoter.sol\":{\"keccak256\":\"0x4425f076cf1ac779a81064542b8fb0e9a94a19229d8336c3e96f2212f7198d6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afd76e88f8591c807878978553f2832fec1ef5c12375dbea423e00d1107af534\",\"dweb:/ipfs/QmbvCnpvWkLJexvTJRtkm8MJMXtuoDE7CV9abYpDQykBC4\"]},\"src/libraries/Locker.sol\":{\"keccak256\":\"0x5c0859290a277fbfba8579b506426d3fc4b2ff7d8b691c03dd23aa85797fdae1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18ad9effea8da74b9988373dddddd6669f11701fc954f77d2cb58beb9a9cc3ad\",\"dweb:/ipfs/QmQdBMoXdVACo6k6rumWj15UPDCqGpWNSPvQbejxKuV9RJ\"]},\"src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"src/libraries/QuoterRevert.sol\":{\"keccak256\":\"0xc1ed80b3a5e3e11b42402f4a9242d2af71babc4b69fac840976920553de3f0cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd818687ffdd78927b53210c868bbb1d27f4adf163e9b45f9c6586e2ee9ad2f4\",\"dweb:/ipfs/QmeZMRkBEhgjsFdR9G88qiCrLuFw5c9S5n8SKpuuk4rCoQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"_poolManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"PoolId","name":"poolId","type":"bytes32"}],"type":"error","name":"NotEnoughLiquidity"},{"inputs":[],"type":"error","name":"NotPoolManager"},{"inputs":[],"type":"error","name":"NotSelf"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"QuoteSwap"},{"inputs":[],"type":"error","name":"UnexpectedCallSuccess"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"type":"error","name":"UnexpectedRevertBytes"},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactParams","name":"params","type":"tuple","components":[{"internalType":"Currency","name":"exactCurrency","type":"address"},{"internalType":"struct PathKey[]","name":"path","type":"tuple[]","components":[{"internalType":"Currency","name":"intermediateCurrency","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"bytes","name":"hookData","type":"bytes"}]},{"internalType":"uint128","name":"exactAmount","type":"uint128"}]}],"stateMutability":"nonpayable","type":"function","name":"_quoteExactInput","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactSingleParams","name":"params","type":"tuple","components":[{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"uint128","name":"exactAmount","type":"uint128"},{"internalType":"bytes","name":"hookData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"_quoteExactInputSingle","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactParams","name":"params","type":"tuple","components":[{"internalType":"Currency","name":"exactCurrency","type":"address"},{"internalType":"struct PathKey[]","name":"path","type":"tuple[]","components":[{"internalType":"Currency","name":"intermediateCurrency","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"bytes","name":"hookData","type":"bytes"}]},{"internalType":"uint128","name":"exactAmount","type":"uint128"}]}],"stateMutability":"nonpayable","type":"function","name":"_quoteExactOutput","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactSingleParams","name":"params","type":"tuple","components":[{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"uint128","name":"exactAmount","type":"uint128"},{"internalType":"bytes","name":"hookData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"_quoteExactOutputSingle","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactParams","name":"params","type":"tuple","components":[{"internalType":"Currency","name":"exactCurrency","type":"address"},{"internalType":"struct PathKey[]","name":"path","type":"tuple[]","components":[{"internalType":"Currency","name":"intermediateCurrency","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"bytes","name":"hookData","type":"bytes"}]},{"internalType":"uint128","name":"exactAmount","type":"uint128"}]}],"stateMutability":"nonpayable","type":"function","name":"quoteExactInput","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}]},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactSingleParams","name":"params","type":"tuple","components":[{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"uint128","name":"exactAmount","type":"uint128"},{"internalType":"bytes","name":"hookData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"quoteExactInputSingle","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}]},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactParams","name":"params","type":"tuple","components":[{"internalType":"Currency","name":"exactCurrency","type":"address"},{"internalType":"struct PathKey[]","name":"path","type":"tuple[]","components":[{"internalType":"Currency","name":"intermediateCurrency","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"bytes","name":"hookData","type":"bytes"}]},{"internalType":"uint128","name":"exactAmount","type":"uint128"}]}],"stateMutability":"nonpayable","type":"function","name":"quoteExactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}]},{"inputs":[{"internalType":"struct IV4Quoter.QuoteExactSingleParams","name":"params","type":"tuple","components":[{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"uint128","name":"exactAmount","type":"uint128"},{"internalType":"bytes","name":"hookData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"quoteExactOutputSingle","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{"_quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))":{"details":"external function called within the _unlockCallback, to simulate an exact input swap, then revert with the result"},"_quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":{"details":"external function called within the _unlockCallback, to simulate a single-hop exact input swap, then revert with the result"},"_quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))":{"details":"external function called within the _unlockCallback, to simulate an exact output swap, then revert with the result"},"_quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":{"details":"external function called within the _unlockCallback, to simulate a single-hop exact output swap, then revert with the result"},"msgSender()":{"details":"Uniswap v4 periphery contracts implement a callback pattern which lose the original msg.sender caller context. This view function provides a way for integrating contracts (e.g. hooks) to access the original caller address.","returns":{"_0":"The address of the original caller"}},"quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))":{"params":{"params":"the params for the quote, encoded as 'QuoteExactParams' currencyIn The input currency of the swap path The path of the swap encoded as PathKeys that contains currency, fee, tickSpacing, and hook info exactAmount The desired input amount"},"returns":{"amountOut":"The output quote for the exactIn swap","gasEstimate":"Estimated gas units used for the swap"}},"quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":{"params":{"params":"The params for the quote, encoded as `QuoteExactSingleParams` poolKey The key for identifying a V4 pool zeroForOne If the swap is from currency0 to currency1 exactAmount The desired input amount hookData arbitrary hookData to pass into the associated hooks"},"returns":{"amountOut":"The output quote for the exactIn swap","gasEstimate":"Estimated gas units used for the swap"}},"quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))":{"params":{"params":"the params for the quote, encoded as 'QuoteExactParams' currencyOut The output currency of the swap path The path of the swap encoded as PathKeys that contains currency, fee, tickSpacing, and hook info exactAmount The desired output amount"},"returns":{"amountIn":"The input quote for the exactOut swap","gasEstimate":"Estimated gas units used for the swap"}},"quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":{"params":{"params":"The params for the quote, encoded as `QuoteExactSingleParams` poolKey The key for identifying a V4 pool zeroForOne If the swap is from currency0 to currency1 exactAmount The desired output amount hookData arbitrary hookData to pass into the associated hooks"},"returns":{"amountIn":"The input quote for the exactOut swap","gasEstimate":"Estimated gas units used for the swap"}},"unlockCallback(bytes)":{"details":"We force the onlyPoolManager modifier by exposing a virtual function after the onlyPoolManager check.","params":{"data":"The data that was passed to the call to unlock"},"returns":{"_0":"Any data that you want to be returned from the unlock call"}}},"version":1},"userdoc":{"kind":"user","methods":{"msgSender()":{"notice":"Returns the address of the original caller (msg.sender)"},"poolManager()":{"notice":"The Uniswap v4 PoolManager contract"},"quoteExactInput((address,(address,uint24,int24,address,bytes)[],uint128))":{"notice":"Returns the delta amounts along the swap path for a given exact input swap"},"quoteExactInputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":{"notice":"Returns the delta amounts for a given exact input swap of a single pool"},"quoteExactOutput((address,(address,uint24,int24,address,bytes)[],uint128))":{"notice":"Returns the delta amounts along the swap path for a given exact output swap"},"quoteExactOutputSingle(((address,address,uint24,int24,address),bool,uint128,bytes))":{"notice":"Returns the delta amounts for a given exact output swap of a single pool"},"unlockCallback(bytes)":{"notice":"Called by the pool manager on `msg.sender` when the manager is unlocked"}},"version":1}},"settings":{"remappings":["@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/","@uniswap/v4-core/=lib/v4-core/","ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/v4-core/lib/forge-std/src/","hardhat/=lib/v4-core/node_modules/hardhat/","openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/v4-core/lib/solmate/","v4-core/=lib/v4-core/src/"],"optimizer":{"enabled":true,"runs":44444444},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/lens/V4Quoter.sol":"V4Quoter"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"lib/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"lib/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"lib/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol":{"keccak256":"0x58c82f2bd9d7c097ed09bd0991fedc403b0ec270eb3d0158bfb095c06a03d719","urls":["bzz-raw://91168ca26a10980df2cdc3fbfe8ddf372c002b7ef19e3c59a0c9870d64198f1b","dweb:/ipfs/QmUSpaM825vd1SwvF38esgbdLgYiPwefKaFERTWvUi6uSK"],"license":"MIT"},"lib/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"lib/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"lib/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"lib/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"lib/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"lib/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"lib/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"lib/v4-core/src/libraries/ParseBytes.sol":{"keccak256":"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15","urls":["bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17","dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa"],"license":"MIT"},"lib/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"lib/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"lib/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"lib/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"lib/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"lib/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"lib/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"lib/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"lib/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"lib/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"src/base/BaseV4Quoter.sol":{"keccak256":"0xd9bd9622e865f558e6e8a98b80c232c945fb8eb99a914fc10d99ee78031eccf4","urls":["bzz-raw://4ae21737b7abc8de8727c0af1a27ff3fb9ef87e367a0775f5bd34bc343287b64","dweb:/ipfs/Qmb8ci92QrwhzLvWkYqB3Ry8a7BySg2DbGh8sSkD5nmQVm"],"license":"MIT"},"src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"src/base/SafeCallback.sol":{"keccak256":"0xd78b583df1b9ee06d58e83b84fc9f08971389b34dd34bc13db072e0c13c710da","urls":["bzz-raw://c0a47f4bcd6060c4462153b9a7c52a60a460ace91acb6ddd5492eab28ec26173","dweb:/ipfs/QmdRCTRS1dhFjWEy6z577j4xz9J5HPfHBwcNzAic8G59oT"],"license":"MIT"},"src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"src/interfaces/IMsgSender.sol":{"keccak256":"0xcc7d4e3f2fde34cf1ad9f05a8e43977e04d19624f71eb8a8c295feaf64b362a3","urls":["bzz-raw://1e02044b5e19cc9ca24d23f55667142fde6daefba66408b56c4f620b625fc189","dweb:/ipfs/QmUqWdRBqWi2tZkNAPhzLZbknP26TZbD8iRQMd3fdZGFgi"],"license":"MIT"},"src/interfaces/IV4Quoter.sol":{"keccak256":"0x97f4f76c2cb225fbfef8f77f7b87d2084dd51fa54e57b4353d095856cea20711","urls":["bzz-raw://ebac51d87fa46b9eb903e73f7c21dc423f586e5ab7cebb29d573fa52fb6a7f5c","dweb:/ipfs/QmbdehsxARB87bDN9pgHsnDmhop48QfWHdcHMxhxM1tXrT"],"license":"MIT"},"src/lens/V4Quoter.sol":{"keccak256":"0x4425f076cf1ac779a81064542b8fb0e9a94a19229d8336c3e96f2212f7198d6f","urls":["bzz-raw://afd76e88f8591c807878978553f2832fec1ef5c12375dbea423e00d1107af534","dweb:/ipfs/QmbvCnpvWkLJexvTJRtkm8MJMXtuoDE7CV9abYpDQykBC4"],"license":"MIT"},"src/libraries/Locker.sol":{"keccak256":"0x5c0859290a277fbfba8579b506426d3fc4b2ff7d8b691c03dd23aa85797fdae1","urls":["bzz-raw://18ad9effea8da74b9988373dddddd6669f11701fc954f77d2cb58beb9a9cc3ad","dweb:/ipfs/QmQdBMoXdVACo6k6rumWj15UPDCqGpWNSPvQbejxKuV9RJ"],"license":"MIT"},"src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"src/libraries/QuoterRevert.sol":{"keccak256":"0xc1ed80b3a5e3e11b42402f4a9242d2af71babc4b69fac840976920553de3f0cc","urls":["bzz-raw://dd818687ffdd78927b53210c868bbb1d27f4adf163e9b45f9c6586e2ee9ad2f4","dweb:/ipfs/QmeZMRkBEhgjsFdR9G88qiCrLuFw5c9S5n8SKpuuk4rCoQ"],"license":"MIT"}},"version":1},"id":128}